Yet another Jedi Python language server
Project description
anakin-language-server
Yet another Jedi Python language server
Requirements
- Python >= 3.6
- pygls >= 1.3, <1.4
- Jedi >= 0.19
- pyflakes ~= 2.2
- pycodestyle ~= 2.5
- yapf ~=0.30
Optional requirements
- mypy
Implemented features
textDocument/completiontextDocument/hovertextDocument/signatureHelptextDocument/definitiontextDocument/referencestextDocument/publishDiagnosticstextDocument/documentSymboltextDocument/codeAction(Inline variable)textDocument/formattingtextDocument/rangeFormattingtextDocument/renametextDocument/documentHighlight
Initialization option
venv- path to virtualenv. This option will be passed to Jedi's create_environment.
Also one can set VIRTUAL_ENV or CONDA_PREFIX before running anakinls so Jedi will find proper environment. See get_default_environment.
Diagnostics
Diagnostics are published on document open and save.
Diagnostics providers:
-
Jedi
See get_syntax_errors.
-
pyflakes
-
pycodestyle
Server restart is needed after changing one of the configuration files.
-
mypy
Install
mypyin the same environment asanakinlsand setmypy_enabledconfiguration option.
Configuration options
Configuration options must be passed under anakinls key in workspace/didChangeConfiguration notification.
Available options:
| Option | Description | Default |
|---|---|---|
help_on_hover |
Use help instead of infer for textDocument/hover. |
True |
completion_snippet_first |
Tweak sortText property so snippet completion appear before plain completion. |
False |
completion_fuzzy |
Value of the fuzzy parameter for complete. |
False |
diagnostic_on_open |
Publish diagnostics on textDocument/didOpen |
True |
diagnostic_on_change |
Publish diagnostics on textDocument/didChange |
False |
diagnostic_on_save |
Publish diagnostics on textDocument/didSave |
True |
pyflakes_errors |
Diagnostic severity will be set to Error if Pyflakes message class name is in this list. See Pyflakes messages. |
['UndefinedName'] |
pycodestyle_config |
In addition to project and user level config, specify pycodestyle config file. Same as --config option for pycodestyle. |
None |
mypy_enabled |
Use mypy to provide diagnostics. |
False |
yapf_style_config |
Either a style name or a path to a file that contains formatting style settings. | 'pep8' |
jedi_settings |
Global Jedi settings. E.g. set it to {"case_insensitive_completion": False} to turn off case insensitive completion |
{} |
Configuration example
Here is eglot configuration:
(defvar my/lsp-venv nil
"Name of virtualenv.
Set it in project's dir-locals file.")
(defclass my/eglot-anakinls (eglot-lsp-server) ()
:documentation
"Own eglot server class.")
(cl-defmethod eglot-initialization-options ((_server my/eglot-anakinls))
"Pass initialization param to anakinls."
`(:venv ,(when my/lsp-venv
(expand-file-name
(concat "~/.virtualenvs/" my/lsp-venv)))))
;; Add this server to eglot programs to handle python-mode and run `anakinls'
(add-to-list 'eglot-server-programs
'(python-mode my/eglot-anakinls "anakinls"))
;; Also treat UnusedVariable as error
(setq-default eglot-workspace-configuration
'((:anakinls :pyflakes_errors ["UndefinedName" "UnusedVariable"])))
Installation
pip install anakin-language-server
Development
pip install pre-commit
pre-commit install
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 anakin_language_server-1.23.tar.gz.
File metadata
- Download URL: anakin_language_server-1.23.tar.gz
- Upload date:
- Size: 51.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b7058dc7c237861f79a4e9a273a3a4f27f3fa2e1bfbb95f95dcb1c4dc5e79c2
|
|
| MD5 |
527a998e057a3834f6fd4cc666f042ba
|
|
| BLAKE2b-256 |
1bb0e0d1b302f19bd2acf178df3c0582f3bdbc27837e7ca8aa7b83a9723edbcb
|
File details
Details for the file anakin_language_server-1.23-py3-none-any.whl.
File metadata
- Download URL: anakin_language_server-1.23-py3-none-any.whl
- Upload date:
- Size: 37.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86b9d0f62f34295371dd0c8c2f416611fdb3a9f14adbbc623dab28f6570a5675
|
|
| MD5 |
73ebba302087ef4c353fcd2da104031b
|
|
| BLAKE2b-256 |
ae4d97d5f1e2f5976ef2e1b8c156d717ac97fd1415d9df54d618c88730014a5c
|