ruff/docs/editors/migration.md

2.6 KiB

Migrating from ruff-lsp

While ruff server supports the same feature set as ruff-lsp, migrating to ruff server may require changes to your Ruff or language server configuration.

!!! note

The [VS Code extension](https://github.com/astral-sh/ruff-vscode) settings include documentation to indicate which
settings are supported by `ruff server`. As such, this migration guide is primarily targeted at editors that lack
explicit documentation for `ruff server` settings, such as Helix or Neovim.

Unsupported Settings

Several ruff-lsp settings are not supported by ruff server. These are, as follows:

  • format.args
  • ignoreStandardLibrary
  • interpreter
  • lint.args
  • lint.run
  • path

!!! note

Some of these settings, like `interpreter` and `path`, are still accepted by the VS Code
extension. `path`, in particular, can be used to specify a dedicated binary to use when
initializing `ruff server`. But the language server itself will no longer accept such settings.

New Settings

ruff server introduces several new settings that ruff-lsp does not have. These are, as follows:

Several of these new settings are replacements for the now-unsupported format.args and lint.args. For example, if you've been passing --select=<RULES> to lint.args, you can migrate to the new server by using lint.select with a value of ["<RULES>"].

Examples

Let's say you have these settings in VS Code:

{
    "ruff.lint.args": "--select=E,F --line-length 80 --config ~/.config/custom_ruff_config.toml"
}

After enabling the native server, you can migrate your settings like so:

{
    "ruff.configuration": "~/.config/custom_ruff_config.toml",
    "ruff.lineLength": 80,
    "ruff.lint.select": ["E", "F"]
}

Similarly, let's say you have these settings in Helix:

[language-server.ruff.config.lint]
args = "--select=E,F --line-length 80 --config ~/.config/custom_ruff_config.toml"

These can be migrated like so:

[language-server.ruff.config]
configuration = "~/.config/custom_ruff_config.toml"
lineLength = 80

[language-server.ruff.config.lint]
select = ["E", "F"]