Ruff linting plugin for pylsp
Project description
python-lsp-ruff
python-lsp-ruff
is a plugin for python-lsp-server
that adds linting, code action and formatting capabilities that are provided by ruff,
a extremely fast Python linter, written in Rust.
Install
In the same virtualenv
as python-lsp-server
:
pip install python-lsp-ruff
There also exists an AUR package.
Usage
This plugin will disable flake8
, pycodestyle
, pyflakes
, mccabe
and pyls_isort
by default.
When enabled, all linting diagnostics will be provided by ruff
.
Sorting of the imports through ruff
when formatting is enabled by default.
The list of code fixes can be changed via the pylsp.plugins.ruff.format
option.
Any codes given in the format
option will only be marked as fixable
for ruff during the formatting operation, the user has to make sure that these codes are also in the list of codes that ruff checks!
This example configuration for neovim
shows how to always sort imports when running textDocument/formatting
:
lspconfig.pylsp.setup {
settings = {
pylsp = {
plugins = {
ruff = {
enabled = true,
extendSelect = { "I" },
},
}
}
}
}
Configuration
Configuration options can be passed to the python-language-server. If a pyproject.toml
file is present in the project, python-lsp-ruff
will use these configuration options.
Note that any configuration options (except for extendIgnore
and extendSelect
, see
this issue) passed to ruff via
pylsp
are ignored if the project has a pyproject.toml
.
The plugin follows python-lsp-server's configuration. These are the valid configuration keys:
pylsp.plugins.ruff.enabled
: boolean to enable/disable the plugin.true
by default.pylsp.plugins.ruff.config
: Path to optionalpyproject.toml
file.pylsp.plugins.ruff.exclude
: Exclude files from being checked byruff
.pylsp.plugins.ruff.executable
: Path to theruff
executable. Assumed to be in PATH by default.pylsp.plugins.ruff.ignore
: Error codes to ignore.pylsp.plugins.ruff.extendIgnore
: Same as ignore, but append to existing ignores.pylsp.plugins.ruff.lineLength
: Set the line-length for length checks.pylsp.plugins.ruff.perFileIgnores
: File-specific error codes to be ignored.pylsp.plugins.ruff.select
: List of error codes to enable.pylsp.plugins.ruff.extendSelect
: Same as select, but append to existing error codes.pylsp.plugins.ruff.format
: List of error codes to fix during formatting. The default is["I"]
, any additional codes are appended to this list.
For more information on the configuration visit Ruff's homepage.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for python_lsp_ruff-1.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aedf1d42f5284bca7bb5addb5fe9449a2a77bf3bfcc69c1eb6cb16006c068c72 |
|
MD5 | f13c3dd2c0540faade0755ed5136ef4d |
|
BLAKE2b-256 | 310ca692c3fd6c084a1daafea0d922d97f532e1a61d168e482e022340adda35c |