跳到内容

ruff-lsp 迁移

ruff-lsp 是 Ruff 的 语言服务器协议 实现,用于支持编辑器集成。它是用 Python 编写的,是与 Ruff 本身分开的软件包。但是,原生服务器语言服务器协议 实现,它是 用 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 和 formatter

{
    "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 来提供 formatter 标志,如下所示

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

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

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

以下选项可以直接在编辑器设置中设置

剩余选项可以使用 configuration 设置来设置。