Presented by:

Dan Čermák

from SUSE

Dan joined SUSE to work on development tools as part of the developer engagement program, after working on embedded devices. He is an active open source contributor being involved in various upstream projects and a package maintainer in downstream Linux distributions, like openSUSE and Fedora. Beside testing and cryptography his passions include automating everything, documentation and software design.

Hello

Build a Language Server for Salt States

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.

Date:
2021 June 19 - 09:30
Duration:
15 min
Room:
Stage 1
Language:
Track:
Open Source
Difficulty:
Medium

Happening at the same time:

  1. openSUSE Leap 15.3 retrospective feedback review
  2. Start Time:
    2021 June 19 09:00

    Room:
    Workshop