docs: revise Ruff setup instructions for Zed editor (#20935)

Co-authored-by: Micha Reiser <micha@reiser.io>
This commit is contained in:
Loïc Riegel 2025-11-06 02:11:29 +01:00 committed by GitHub
parent 76127e5fb5
commit c6573b16ac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 13 additions and 66 deletions

View File

@ -422,29 +422,12 @@ bundle for TextMate.
## Zed
Ruff is available as an extension for the Zed editor. To install it:
Ruff support is now built into Zed (no separate extension required).
1. Open the command palette with `Cmd+Shift+P`
1. Search for "zed: extensions"
1. Search for "ruff" in the extensions list and click "Install"
By default, Zed uses Ruff for formatting and linting.
To configure Zed to use the Ruff language server for Python files, add the following
to your `settings.json` file:
```json
{
"languages": {
"Python": {
"language_servers": ["ruff"]
// Or, if there are other language servers you want to use with Python
// "language_servers": ["pyright", "ruff"]
}
}
}
```
To configure the language server, you can provide the [server settings](settings.md)
under the [`lsp.ruff.initialization_options.settings`](https://zed.dev/docs/configuring-zed#lsp) key:
To set up editor-wide Ruff options, provide the [server settings](settings.md)
under the [`lsp.ruff.initialization_options.settings`](https://zed.dev/docs/configuring-zed#lsp) key of your `settings.json` file:
```json
{
@ -452,7 +435,7 @@ under the [`lsp.ruff.initialization_options.settings`](https://zed.dev/docs/conf
"ruff": {
"initialization_options": {
"settings": {
// Ruff server settings goes here
// Ruff server settings go here
"lineLength": 80,
"lint": {
"extendSelect": ["I"],
@ -464,22 +447,14 @@ under the [`lsp.ruff.initialization_options.settings`](https://zed.dev/docs/conf
}
```
You can configure Ruff to format Python code on-save by registering the Ruff formatter
and enabling the [`format_on_save`](https://zed.dev/docs/configuring-zed#format-on-save) setting:
[`format_on_save`](https://zed.dev/docs/configuring-zed#format-on-save) is enabled by default.
You can disable it for Python by changing `format_on_save` in your `settings.json` file:
```json
{
"languages": {
"Python": {
"language_servers": ["ruff"],
"format_on_save": "on",
"formatter": [
{
"language_server": {
"name": "ruff"
}
}
]
"format_on_save": "off"
}
}
}
@ -492,40 +467,12 @@ You can configure Ruff to fix lint violations and/or organize imports on-save by
{
"languages": {
"Python": {
"language_servers": ["ruff"],
"format_on_save": "on",
"formatter": [
// Fix all auto-fixable lint violations
{ "code_action": "source.fixAll.ruff" },
"code_actions_on_format": {
// Organize imports
{ "code_action": "source.organizeImports.ruff" }
]
}
}
}
```
Taken together, you can configure Ruff to format, fix, and organize imports on-save via the
following `settings.json`:
!!! note
For this configuration, it is important to use the correct order of the code action and
formatter language server settings. The code actions should be defined before the formatter to
ensure that the formatter takes care of any remaining style issues after the code actions have
been applied.
```json
{
"languages": {
"Python": {
"language_servers": ["ruff"],
"format_on_save": "on",
"formatter": [
{ "code_action": "source.fixAll.ruff" },
{ "code_action": "source.organizeImports.ruff" },
{ "language_server": { "name": "ruff" } }
]
"source.organizeImports.ruff": true,
// Fix all auto-fixable lint violations
"source.fixAll.ruff": true
}
}
}
}