The Language Server Protocol A language server is a piece of software that speaks a JSON RPC protocol (called the Language Server Protocol, abbreviated LSP) to provide text editors with code completion, diagnostics, documentation, etc. There are several editors and numerous language servers already implementing this protocol. The advantage of the LSP this is, that each language server works independently of the used text editor/IDE and thereby makes all implemented features available to a wider audience. Salt States SaltStack is a configuration management software like Ansible or Puppet which allows you to configure your machines via so-called salt states. Salt states are YAML documents with support for Jinja2 templates: mysql: pkg.installed: - name: mysql service.running: - name: mysql web_server: pkg.installed: {% if grains['os_family'] == 'RedHat' %} - name: httpd {% elif grains['os_family'] == 'Debian' %} - name: apache2 {% endif %} The Salt States Language Server During this year's hackweek #20 Cédric Bosdonnat and Dan Čermák built an initial prototype of a language server for salt states. It already supports rudimentary completion, go to definition, document symbols and it can show the documentation of salt modules. This talk will give a brief overview over the current state of the language server, how we got there and which challenges and surprises we encountered along the way. |