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
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 jedi-language-server-0.19.2.tar.gz.
File metadata
- Download URL: jedi-language-server-0.19.2.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.10 CPython/3.8.3 Linux/4.15.0-1093-oem
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b4e569d5d3a51bd03c121703699a71f49591ffb363382d2ce547363e20dd51c
|
|
| MD5 |
50394335cd46fa8a41d3746bc72b90e8
|
|
| BLAKE2b-256 |
c8dc943d3154b3b844543b888b6dffe9b98952ce20eefa33f3ace5c6f573ffd0
|
File details
Details for the file jedi_language_server-0.19.2-py3-none-any.whl.
File metadata
- Download URL: jedi_language_server-0.19.2-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.10 CPython/3.8.3 Linux/4.15.0-1093-oem
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7a63a2511bb96a6941845751907d16320f29f96a497f718f8fb85462bc97711
|
|
| MD5 |
628b32219c08f0116bf7acbf978e1175
|
|
| BLAKE2b-256 |
8db56756ba3c7d6aef111521f619e09180f89e6735977ffaf2c643bac181bc78
|