从 ruff-lsp 迁移
ruff-lsp 是 Ruff 的语言服务器协议 (LSP) 实现,用于支持编辑器集成。它由 Python 编写,是一个独立于 Ruff 本身的软件包。然而,原生服务器 (Native server) 是用 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 所没有的新设置:
configurationconfigurationPreferenceexcludeformat.previewlineLengthlint.selectlint.extendSelectlint.ignorelint.preview
示例
以下提到的所有示例仅适用于 VS Code 扩展。对于其他编辑器,请参考设置页面中各自的文档部分。
配置文件
如果您之前提供的配置文件如下所示:
{
"ruff.lint.args": "--config ~/.config/custom_ruff_config.toml",
"ruff.format.args": "--config ~/.config/custom_ruff_config.toml"
}
您可以通过使用 configuration 设置迁移到新服务器(如下所示),该设置将把配置应用到 linter 和格式化程序:
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 提供格式化程序标志,如下所示:
您可以通过使用 lineLength 和 configuration 设置迁移到新服务器,如下所示:
以下选项可以直接在编辑器设置中进行配置:
其余选项可以使用 configuration 设置进行配置。