Skip to main content

A language server for Jedi!

Project description

jedi-language-server

image-version image-license image-python-versions image-pypi-downloads

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

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

Users may choose 1 of the following options:

Note: this list is non-exhaustive. If you know of a great choice not included in this list, please submit a PR!

Emacs

Users may choose 1 of the following options:

Note: this list is non-exhaustive. If you know of a great choice not included in this list, please submit a PR!

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": [],
      "caseInsensitiveCompletion": true
    },
    "completion": {
      "disableSnippets": false,
      "resolveEagerly": false
    },
    "diagnostics": {
      "enable": true,
      "didOpen": true,
      "didChange": true,
      "didSave": true
    },
    "workspace": {
      "extraPaths": []
    }
  }
...

See coc-jedi's configuration instructions for an explanation of the above configurations.

Additional Diagnostics

jedi-langugage-server provides diagnostics about syntax errors, powered by Jedi. If you would like additional diagnostics, we suggest using the powerful diagnostic-language-server.

Code Formatting

Again, we recommend that you use diagnostic-language-server. It also supports code formatting.

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

jedi-language-server-0.25.5.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jedi_language_server-0.25.5-py3-none-any.whl (23.7 kB view details)

Uploaded Python 3

File details

Details for the file jedi-language-server-0.25.5.tar.gz.

File metadata

  • Download URL: jedi-language-server-0.25.5.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.4.0-66-generic

File hashes

Hashes for jedi-language-server-0.25.5.tar.gz
Algorithm Hash digest
SHA256 6931f6dce9c30463b66fb5337f8a4889abb436d3b0a5482a76f6368af0a2509f
MD5 52e8237f95517e4455029778f2ee8b64
BLAKE2b-256 0b8fe4752fb800f102a5dcedd28f01f8c58a8f381b41a7f7882fd24409d22957

See more details on using hashes here.

File details

Details for the file jedi_language_server-0.25.5-py3-none-any.whl.

File metadata

File hashes

Hashes for jedi_language_server-0.25.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ead7cf955c385e4fe5c4e766bb0e97b8cc118454b8ac2e78f2a58b086a631cce
MD5 f9a1f32a79cc2408cc65f3b01c8aab8c
BLAKE2b-256 33b3194f1a81264c3c60382a0549a799c3aed37c202ea8622b0f8e2534d33bf0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page