salt-lsp
Salt Language Server Protocol Server
History & Current State
This is a Hackweek project of Cédric Bosdonnat and
Dan Čermák that reached an early prototype
state. However, we never really managed to handle Jinja2 templating in sls
files (see salt-lsp#31
) which
is a requirement for this project to be even remotely useful.
Unfortunately neither of the two original authors currently have the time to keep this project alive. If you wish to help out, please open an issue or send a pull request fixing the existing bugs/shortcomings.
As of now, here be 🐉.
Prerequisites
- Python >= 3.8
- Poetry
- VSCode (required for live testing the server from an editor)
Server Setup
Install the dependencies:
$ poetry install
Create the completion classes once:
$ poetry run dump_state_name_completions
Start the server:
$ poetry run salt_lsp_server --tcp
Install the server:
$ poetry build
$ pip install --user --force-reinstall dist/salt_lsp-0.0.1*whl
Clients
VSCode
- Run
yarn install
- Start VSCode and open this directory as the server
- Open the Debug menu (Ctrl + Shift + D)
- Select "Launch Client" drop down
- Press F5
Emacs
You should install salt-mode so
that sls
files are registered to the salt major mode. The language server must
be installed on your system so that the clients can launch it.
Using lsp-mode
- Install & configure lsp-mode
- Load the file
clients/emacs/salt-lsp.el
- Open a sls file and launch
lsp
viaM-x lsp
Using eglot
- Install & configure eglot
- Evaluate the following snippet:
(add-to-list 'eglot-server-programs '(salt-mode . ("python3" "-m" "salt_lsp")))
- Launch eglot via
M-x eglot