A language server for Jedi!
Project description
jedi-language-server
A Language Server for the latest version(s) of Jedi. If using Neovim/Vim, we recommend using with coc-jedi.
Note: this tool is actively used by its primary author. He's happy to review pull requests / respond to issues you may discover.
Installation
From your command line (bash / zsh), run:
pip install -U jedi-language-server
-U
ensures that you're pulling the latest version from pypi.
Alternatively, consider using pipx to keep jedi-language-server isolated from your other Python dependencies. Don't worry, jedi is smart enough to figure out which Virtual environment you're currently using!
Capabilities
jedi-language-server aims to support all of Jedi's capabilities and expose them through the Language Server Protocol. It currently supports the following Language Server capabilities:
Language Features
- textDocument/codeAction (refactor.inline, refactor.extract)
- textDocument/completion
- textDocument/definition
- textDocument/documentHighlight
- textDocument/documentSymbol
- textDocument/hover
- textDocument/publishDiagnostics
- textDocument/references
- textDocument/rename
- textDocument/signatureHelp
- workspace/symbol
Text Synchronization (for diagnostics)
Editor Setup
The following instructions show how to use jedi-language-server with your development tooling. The instructions assume you have already installed jedi-language-server.
Vim / Neovim
Emacs
Use lsp-jedi.
Command line (bash / zsh)
At your terminal prompt:
jedi-language-server
jedi-language-server currently works only over IO. This may change in the future.
Configuration
We recommend using coc-jedi and following its configuration instructions.
If you are configuring manually, jedi-language-server supports the following initializationOptions:
...
"initializationOptions": {
"markupKindPreferred": null,
"jediSettings": {
"autoImportModules": []
},
"completion": {
"disableSnippets": false
},
"diagnostics": {
"enable": true,
"didOpen": true,
"didChange": true,
"didSave": true
}
}
...
See coc-jedi's configuration instructions for an explanation of the above configurations.
Additional Diagnostics
jedi-langugage-server currently provides diagnostics about syntax errors, powered by Jedi. If you would like additional diagnostics, we suggest using the powerful diagnostic-language-server.
Local Development
To build and run this project from source:
Dependencies
Install the following tools manually:
Recommended
Get source code
Fork this repository and clone the fork to your development machine:
git clone https://github.com/<YOUR-USERNAME>/jedi-language-server
cd jedi-language-server
Set up development environment
make setup
Run tests
make test
Inspiration
Palantir's python-language-server inspired this project. Unlike python-language-server, jedi-language-server:
- Uses pygls instead of creating its own low-level Language Server Protocol bindings
- Supports one powerful 3rd party library: Jedi. By only supporting Jedi, we can focus on supporting all Jedi features without exposing ourselves to too many broken 3rd party dependencies (I'm looking at you, rope).
- Is supremely simple because of its scope constraints. Leave complexity to the Jedi master. If the force is strong with you, please submit a PR!
Written by
Samuel Roeca samuel.roeca@gmail.com
Project details
Release history Release notifications | RSS feed
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
Hashes for jedi-language-server-0.18.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2307d7f504542a3ee964d5d49cbe4bed204d3174a51140e2f236947802916e7 |
|
MD5 | c53fea1392d9a5d41cf1ced6e5ce2585 |
|
BLAKE2b-256 | 0eba58b12884c7a0ca144648bccfbd862582a93e4622c71d9a090684ef53a296 |
Hashes for jedi_language_server-0.18.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a957a65281fd6c62ef412ee3a316c3863c674ef6d62dc6fbd089e71e8dd917c |
|
MD5 | f116efedb2fe3b1f1e9d46a00e462347 |
|
BLAKE2b-256 | e7a2cc1e79dd7a0ae5fc2b8617f385581cd3c19d907ef8c3cf6ee474f97ca9bc |