Black plugin for the Python LSP Server
Project description
python-lsp-black
Black plugin for the Python LSP Server.
Install
In the same virtualenv as python-lsp-server:
pip install python-lsp-black
Usage
This plugin will disable the yapf and autopep8 plugins if installed.
python-lsp-blackcan either format an entire file or just the selected text.- The code will only be formatted if it is syntactically valid Python.
- Text selections are treated as if they were a separate Python file. Unfortunately this means you can't format an indented block of code.
python-lsp-blackwill use your project's pyproject.toml if it has one.python-lsp-blackonly officially supports the latest stable version of black. An effort is made to keep backwards-compatibility but older black versions will not be actively tested.- The plugin can cache the black configuration that applies to each Python file, this
improves performance of the plugin. When configuration caching is enabled any changes to
black's configuration will need the LSP server to be restarted. Configuration caching
can be disabled with the
cache_configoption, see Configuration below.
Configuration
The plugin follows python-lsp-server's configuration. These are the valid configuration keys:
pylsp.plugins.black.enabled: boolean to enable/disable the plugin.pylsp.plugins.black.cache_config: a boolean to enable black configuration caching (see Usage).falseby default.pylsp.plugins.black.line_length: an integer that maps to black'smax-line-lengthsetting. Defaults to 88 (same as black's default). This can also be set through black's configuration files, which should be preferred for multi-user projects.pylsp.plugins.black.preview: a boolean to enable or disable black's--previewsetting.falseby default.pylsp.plugins.black.skip_string_normalization: a boolean to enable or disable black's--skip-string-normalizationsetting.falseby default.pylsp.plugins.black.skip_magic_trailing_comma: a boolean to enable or disable black'sskip-magic-trailing-commasetting.falseby default.
Development
To install the project for development you need to specify the dev optional dependencies:
python -m venv .venv
. .venv/bin/activate
pip install -e .[dev]
This project uses pre-commit hooks to control code quality, install them to run automatically when creating a git commit, thus avoiding seeing errors when you create a pull request:
pre-commit install
To run tests:
make test
To run linters:
make lint # just a shortcut to pre-commit run -a
make <linter_name> # black, flake8, isort, mypy
To upgrade the version of the pre-commit hooks:
pre-commit autoupdate
# check and git commit changes to .pre-commit-config.yaml
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python-lsp-black-2.0.0.tar.gz.
File metadata
- Download URL: python-lsp-black-2.0.0.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8286d2d310c566844b3c116b824ada6fccfa6ba228b1a09a0526b74c04e0805f
|
|
| MD5 |
61e9285d36d159575af4d6a10686d61d
|
|
| BLAKE2b-256 |
c04806edc947f711fb076b564ee97bbecb5ae877816ccc0edf4347f57cd9d6b9
|
File details
Details for the file python_lsp_black-2.0.0-py3-none-any.whl.
File metadata
- Download URL: python_lsp_black-2.0.0-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5efdee45f5fa9e5241f5d4d396cd46127f45c85817916b1fd92c2986652bf7e
|
|
| MD5 |
7e5fdb26367a056ac8f3b68305e961d6
|
|
| BLAKE2b-256 |
7844fef9b4d027b3d6321e6f30b6b5946bef18cd84a96e1d81012ac0f69ea53c
|