从 ruff-lsp
迁移
ruff-lsp
是 Ruff 的 语言服务器协议 实现,用于支持编辑器集成。它是用 Python 编写的,是与 Ruff 本身分开的软件包。但是,原生服务器 是 语言服务器协议 实现,它是 用 Rust 编写的,并且可以通过 ruff server
命令获得。本指南旨在帮助用户从 ruff-lsp
迁移到原生服务器。
注意
原生服务器最初在 Ruff 版本 0.3.5
中引入。它在版本 0.4.5
中被标记为 beta 版本,并在 0.5.3 版本中正式稳定。建议使用最新版本的 Ruff 以确保最佳体验。
迁移过程涉及以下任何或所有步骤
继续阅读以了解有关不支持或新设置的更多信息,或者跳转到 示例,其中列举了一些常见设置以及如何迁移它们。
不支持的设置
原生服务器不支持以下 ruff-lsp
设置
lint.run
:此设置不再与原生语言服务器相关,原生语言服务器默认在每次击键时运行。lint.args
,format.args
:这些设置已被原生服务器中更精细的设置取代,例如lint.select
,format.preview
等,以及使用configuration
设置覆盖任何配置的能力。
以下设置不被语言服务器接受,但仍被 VS Code 扩展 使用。有关扩展如何使用每个设置的更多信息,请参阅其各自的文档
已移除的设置
此外,原生服务器不支持以下设置,应将其删除
新的设置
原生服务器引入了几个 ruff-lsp
没有的新设置
configuration
configurationPreference
exclude
format.preview
lineLength
lint.select
lint.extendSelect
lint.ignore
lint.preview
示例
以下提到的所有示例仅对 VS Code 扩展 有效。对于其他编辑器,请参阅 设置 页面中的相应文档部分。
配置文件
如果您一直在提供如下所示的配置文件
{
"ruff.lint.args": "--config ~/.config/custom_ruff_config.toml",
"ruff.format.args": "--config ~/.config/custom_ruff_config.toml"
}
您可以使用 configuration
设置迁移到新服务器,如下所示,这将把配置应用于 linter 和 formatter
lint.args
如果您通过使用 ruff.lint.args
来提供 linter 标志,如下所示
您可以使用 lint.select
和 configuration
设置迁移到新服务器,如下所示
{
"ruff.lint.select": ["E", "F"],
"ruff.configuration": {
"unsafe-fixes": true,
"lint": {
"unfixable": ["F401"]
}
}
}
以下选项可以直接在编辑器设置中设置
剩余选项可以使用 configuration
设置来设置。
format.args
如果您还通过使用 ruff.format.args
来提供 formatter 标志,如下所示
您可以使用 lineLength
和 configuration
设置迁移到新服务器,如下所示
以下选项可以直接在编辑器设置中设置
剩余选项可以使用 configuration
设置来设置。