Skip to content

psacawa/systemd-language-server

Repository files navigation

systemd-language-server

PyPI GitHub Actions (Tests) GitHub

Language server for systemd unit files. Result of an exercise to learn the language server protocol.

Supported Features

textDocument/completion

Completion for

  • unit file directives
  • unit file sections

textDocument/hover

Documentation for directives supplied on hovering.

For markup in hover windows (i.e. the fancy highlighting), pandoc must be found in $PATH. Otherwise, there will be fallback to plain text.

Installation

pip install systemd-language-server

Example Integrations

coc.nvim

In coc-settings.json, under .languageserver:

...
"systemd-language-server": {
  "command": "systemd-language-server",
  "filetypes": ["systemd"]
}
...

nvim-lspconfig

local lspconfig = require 'lspconfig'
local configs = require 'lspconfig.configs'

if not configs.systemd_ls then
  configs.systemd_ls = {
    default_config = {
      cmd = { 'systemd-language-server' },
      filetypes = { 'systemd' },
      root_dir = function() return nil end,
      single_file_support = true,
      settings = {},
    },
    docs = {
      description = [[
https://github.com/psacawa/systemd-language-server

Language Server for Systemd unit files.
]]
    }
  }
end

lspconfig.systemd_ls.setup {}

Courtesy of @ValdezFOmar