This pre-release introduces support for the new, experimental Ruff language server (`ruff server`). It also upgrades the bundled Ruff version to `v0.3.3`.
`ruff server` is still missing some core functionality and stability guarantees - this pre-release is intended for early testing. The server can be enabled and disabled with the `experimentalServer` setting. A restart is required after changing this setting.
At the moment, the experimental server has the following known limitations:
- Most extension settings are not yet supported, and many will not be needed after the transition to the new server is finished. For example, `editor.codeActionsOnSave` does not work at the moment due to missing support for source-level code actions (see below). Additionally, `lint.args` / `format.args` will be replaced in the future with specific configuration fields for the linter and formatter.
- Commands/source-level code actions like `Fix all` and `Organize Imports` have not yet been implemented (Quick Fixes should still work, though).
- Hierarchial configuration for individual files is not yet supported. At the moment, the language server uses the `ruff.toml` / `pyproject.toml` at the workspace root to configure the formatter and linter.
- Jupyter Notebook files are not supported yet.
- Using local Ruff binaries is not yet supported. At the moment, the extension will always use the bundled Ruff binary. (`v0.3.3`)
These limitations will all be resolved in future versions.