R
R 支持可通过多种 R Zed 扩展获得:
- Tree-sitter: r-lib/tree-sitter-r
- Language-Server: REditorSupport/languageserver
- Formatter: posit-dev/air
安装
- 下载并安装 R。
- 安装 R 包
languageserver和lintr:
install.packages("languageserver")
install.packages("lintr")通过 Zed 的扩展管理器安装 R 扩展,以获得基本的 R 语言支持(语法高亮、tree-sitter 支持)以及 REditorSupport/languageserver 支持。
通过 Zed 的扩展管理器安装 Air 扩展,以通过 Air 进行 R 代码格式化。
代码检查
REditorSupport/languageserver 捆绑了 r-lib/lintr 作为代码检查器。这可以通过在您的项目中使用 .lintr 文件(或在您的主目录中设置全局默认值)进行配置。
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"
)或者将其排除在代码检查之外,
exclusions: list(".")有关完整选项列表,请参阅 使用 lintr。
格式化
Air
Air 为 R 提供代码格式化,包括支持保存时格式化。Air 的 Zed 文档 包含了在 Zed 中运行 Air 的最新建议。
确保您已安装 ocsmit/zed-r 扩展(用于 Zed 中通用的 R 语言支持)和 Air 扩展。
在设置 ({#kb zed::OpenSettings}) 中配置语言服务器,路径为 语言 > R,或将其添加到您的设置文件中:
{
"languages": {
"R": {
"language_servers": ["air"]
}
}
}如果您使用来自 REditorSupport/languageserver 的 "r_language_server",但仍希望使用 Air 进行格式化,请在设置 ({#kb zed::OpenSettings}) 中进行配置,路径为 语言 > R,或将其添加到您的设置文件中:
{
"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 文件进行最小配置:
[format]
line-width = 80
indent-width = 2有关更多详细信息,请参阅 Air 关于配置的文档。
Styler
REditorSupport/languageserver 捆绑了 r-lib/styler 作为格式化器。有关如何自定义其行为的更多信息,请参阅自定义 Styler。