A Python 2.7 and 3.4+ implementation of the Language Server Protocol.
- Jedi for Completions, Definitions, Hover, References, Signature Help, and Symbols
- Pyflakes linter to detect various errors
- McCabe linter for complexity checking
- pycodestyle linter for style checking
- pydocstyle linter for docstring style checking
- YAPF for code formatting
Installing these plugins will add extra functionality to the language server:
- pyls-mypy Mypy type checking for Python 3
- pyls-isort Isort import sort code formatting
Auto Completion:
Code Linting with pycodestyle and pyflakes:
Signature Help:
Go to definition:
Hover:
Find References:
Document Symbols:
Document Formatting:
pip install python-language-server
To run the test suite:
pip install .[test] && tox
The Python language server can be developed against a local instance of Visual Studio Code.
- Install VSCode for Mac
- From within VSCode View -> Command Palette, then type shell and run
install 'code' command in PATH
# Setup a virtual env
virtualenv env
. env/bin/activate
# Install pyls
pip install .
# Install the vscode-client extension
cd vscode-client
npm install .
# Run VSCode which is configured to use pyls
# See the bottom of vscode-client/src/extension.ts for info
npm run vscode -- $PWD/../
Then to debug, click View -> Output and in the dropdown will be pyls. To refresh VSCode, press Cmd + r
This project is made available under the MIT License.