Skip to content

R

R 支持可通过多种 R Zed 扩展获得:

安装

  1. 下载并安装 R
  2. 安装 R 包 languageserverlintr
R
install.packages("languageserver")
install.packages("lintr")
  1. 通过 Zed 的扩展管理器安装 R 扩展,以获得基本的 R 语言支持(语法高亮、tree-sitter 支持)以及 REditorSupport/languageserver 支持。

  2. 通过 Zed 的扩展管理器安装 Air 扩展,以通过 Air 进行 R 代码格式化。

代码检查

REditorSupport/languageserver 捆绑了 r-lib/lintr 作为代码检查器。这可以通过在您的项目中使用 .lintr 文件(或在您的主目录中设置全局默认值)进行配置。

r
linters: linters_with_defaults(
    line_length_linter(120),
    commented_code_linter = NULL
  )
exclusions: list(
    "inst/doc/creating_linters.R" = 1,
    "inst/example/bad.R",
    "tests/testthat/exclusions-test"
  )

或者将其排除在代码检查之外,

r
exclusions: list(".")

有关完整选项列表,请参阅 使用 lintr

格式化

Air

Air 为 R 提供代码格式化,包括支持保存时格式化。Air 的 Zed 文档 包含了在 Zed 中运行 Air 的最新建议。

确保您已安装 ocsmit/zed-r 扩展(用于 Zed 中通用的 R 语言支持)和 Air 扩展。

在设置 ({#kb zed::OpenSettings}) 中配置语言服务器,路径为 语言 > R,或将其添加到您的设置文件中:

json
{
  "languages": {
    "R": {
      "language_servers": ["air"]
    }
  }
}

如果您使用来自 REditorSupport/languageserver"r_language_server",但仍希望使用 Air 进行格式化,请在设置 ({#kb zed::OpenSettings}) 中进行配置,路径为 语言 > R,或将其添加到您的设置文件中:

json
{
  "languages": {
    "R": {
      "language_servers": ["air", "r_language_server"],
      "use_on_type_format": false
    }
  }
}

请注意,此列表中 "air" 必须排在第一位,否则 r-lib/styler 将会通过 "r_language_server" 被调用。

"r_language_server" 提供的即时格式化规则与 Air 的格式化规则不同。为了避免这种情况,并让 Air 完全负责格式化您的 R 文件,如上所示,还需要设置 "use_on_type_format": false

配置 Air

Air 可以通过在您项目的根目录下放置一个 air.toml 文件进行最小配置:

toml
[format]
line-width = 80
indent-width = 2

有关更多详细信息,请参阅 Air 关于配置的文档。

Styler

REditorSupport/languageserver 捆绑了 r-lib/styler 作为格式化器。有关如何自定义其行为的更多信息,请参阅自定义 Styler