dcermak / salt-lsp

Salt Language Server Protocol Server
Apache License 2.0
22 stars 8 forks source link

salt-lsp

Continous Integration VSCode Extension Build Code Coverage Code style: black PyPI Visual Studio Marketplace

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

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

  1. Run yarn install
  2. Start VSCode and open this directory as the server
  3. Open the Debug menu (Ctrl + Shift + D)
  4. Select "Launch Client" drop down
  5. 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

  1. Install & configure lsp-mode
  2. Load the file clients/emacs/salt-lsp.el
  3. Open a sls file and launch lsp via M-x lsp

Using eglot

  1. Install & configure eglot
  2. Evaluate the following snippet:
    (add-to-list 'eglot-server-programs '(salt-mode . ("python3" "-m" "salt_lsp")))
  3. Launch eglot via M-x eglot