跳到内容

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 以确保最佳体验。

迁移过程涉及以下全部或部分内容:

  1. 弃用的设置迁移到新设置
  2. 移除不再支持的设置
  3. 更新 ruff 版本

请继续阅读以了解有关不支持或新设置的更多信息,或跳转至示例部分,其中列举了一些常见设置及其迁移方法。

不支持的设置

以下 ruff-lsp 设置不受原生服务器支持:

以下设置不被语言服务器接受,但仍被 VS Code 扩展使用。请参考各自的文档以了解扩展如何使用它们:

已移除的设置

此外,以下设置不受原生服务器支持,应予移除:

新设置

原生服务器引入了几个 ruff-lsp 所没有的新设置:

示例

以下提到的所有示例仅适用于 VS Code 扩展。对于其他编辑器,请参考设置页面中各自的文档部分。

配置文件

如果您之前提供的配置文件如下所示:

{
    "ruff.lint.args": "--config ~/.config/custom_ruff_config.toml",
    "ruff.format.args": "--config ~/.config/custom_ruff_config.toml"
}

您可以通过使用 configuration 设置迁移到新服务器(如下所示),该设置将把配置应用到 linter 和格式化程序:

{
    "ruff.configuration": "~/.config/custom_ruff_config.toml"
}

lint.args

如果您通过 ruff.lint.args 提供 linter 标志,如下所示:

{
    "ruff.lint.args": "--select=E,F --unfixable=F401 --unsafe-fixes"
}

您可以通过使用 lint.selectconfiguration 设置迁移到新服务器,如下所示:

{
    "ruff.lint.select": ["E", "F"],
    "ruff.configuration": {
        "unsafe-fixes": true,
        "lint": {
            "unfixable": ["F401"]
        }
    }
}

以下选项可以直接在编辑器设置中进行配置:

其余选项可以使用 configuration 设置进行配置。

format.args

如果您还通过 ruff.format.args 提供格式化程序标志,如下所示:

{
    "ruff.format.args": "--line-length 80 --config='format.quote-style=double'"
}

您可以通过使用 lineLengthconfiguration 设置迁移到新服务器,如下所示:

{
    "ruff.lineLength": 80,
    "ruff.configuration": {
        "format": {
            "quote-style": "double"
        }
    }
}

以下选项可以直接在编辑器设置中进行配置:

其余选项可以使用 configuration 设置进行配置。