Initial PyLSP documentation (#26835)
Closes https://github.com/zed-industries/zed/issues/26820 Release Notes: - N/A
This commit is contained in:
parent
c282acbe65
commit
5f390f1bf8
1 changed files with 26 additions and 10 deletions
|
@ -3,15 +3,36 @@
|
|||
Python support is available natively in Zed.
|
||||
|
||||
- Tree-sitter: [tree-sitter-python](https://github.com/tree-sitter/tree-sitter-python)
|
||||
- Language Server: [microsoft/pyright](https://github.com/microsoft/pyright)
|
||||
- Language Servers:
|
||||
- [microsoft/pyright](https://github.com/microsoft/pyright)
|
||||
- [python-lsp/python-lsp-server](https://github.com/python-lsp/python-lsp-server) (PyLSP)
|
||||
|
||||
## Configuration
|
||||
## Language Servers
|
||||
|
||||
Zed supports multiple Python language servers some of which may require configuration to work properly.
|
||||
|
||||
See: [Working with Language Servers](https://zed.dev/docs/configuring-languages#working-with-language-servers) for more information.
|
||||
|
||||
## Virtual Environments in the Terminal {#terminal-detect_venv}
|
||||
|
||||
Zed will detect Python virtual environments and automatically activate them in terminal if available.
|
||||
See: [detect_venv documentation](../configuring-zed.md#terminal-detect_venv) for more.
|
||||
|
||||
## PyLSP
|
||||
|
||||
[python-lsp-server](https://github.com/python-lsp/python-lsp-server/), more commonly known as PyLSP, by default integrates with a number of external tools (autopep8, mccabe, pycodestyle, yapf) while others are optional and must be explicitly enabled and configured (flake8, pylint).
|
||||
|
||||
See [Python Language Server Configuration](https://github.com/python-lsp/python-lsp-server/blob/develop/CONFIGURATION.md) for more.
|
||||
|
||||
## PyRight
|
||||
|
||||
### PyRight Configuration
|
||||
|
||||
The [pyright](https://github.com/microsoft/pyright) language server offers flexible configuration options specified in a JSON-formatted text configuration. By default, the file is called `pyrightconfig.json` and is located within the root directory of your project. Pyright settings can also be specified in a `[tool.pyright]` section of a `pyproject.toml` file. A `pyrightconfig.json` file always takes precedence over `pyproject.toml` if both are present.
|
||||
|
||||
For more information, see the Pyright [configuration documentation](https://microsoft.github.io/pyright/#/configuration).
|
||||
|
||||
## Settings
|
||||
### PyRight Settings
|
||||
|
||||
The [pyright](https://github.com/microsoft/pyright) language server also accepts specific LSP-related settings, not necessarily connected to a project. These can be changed in the `lsp` section of your `settings.json`.
|
||||
|
||||
|
@ -41,7 +62,7 @@ For example, in order to:
|
|||
|
||||
For more information, see the Pyright [settings documentation](https://microsoft.github.io/pyright/#/settings).
|
||||
|
||||
## Virtual environments
|
||||
### Pyright Virtual environments
|
||||
|
||||
A Python [virtual environment](https://docs.python.org/3/tutorial/venv.html) allows you to store all of a project's dependencies, including the Python interpreter and package manager, in a single directory that's isolated from any other Python projects on your computer.
|
||||
|
||||
|
@ -94,17 +115,12 @@ You can also configure this option directly in your `settings.json` file ([pyrig
|
|||
}
|
||||
```
|
||||
|
||||
## Code formatting & Linting
|
||||
### Code formatting & Linting
|
||||
|
||||
The Pyright language server does not provide code formatting or linting. If you want to detect lint errors and reformat your Python code upon saving, you'll need to set up.
|
||||
|
||||
A common tool for formatting Python code is [Ruff](https://docs.astral.sh/ruff/). It is another tool written in Rust, an extremely fast Python linter and code formatter. It is available through the [Ruff extension](https://github.com/zed-industries/zed/tree/main/extensions/ruff/). To configure the Ruff extension to work within Zed, see the setup documentation [here](https://docs.astral.sh/ruff/editors/setup/#zed).
|
||||
|
||||
## Virtual Environments in the Terminal {#terminal-detect_venv}
|
||||
|
||||
Zed will also detect virtual environments and automatically activate them in terminal if available.
|
||||
See: [detect_venv documentation](../configuring-zed.md#terminal-detect_venv) for more.
|
||||
|
||||
<!--
|
||||
TBD: Expand Python Ruff docs.
|
||||
TBD: Ruff pyproject.toml, ruff.toml docs. `ruff.configuration`.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue