Configure

  • For windows, change ~/.config to ~/AppData/Local

  • For macOS, change ~/.config to ~/Library

(Neo)Vim

For vim:

  • Change ~/.config/nvim to ~/.vim

  • Change init.vim to vimrc

coc.nvim

~/.config/nvim/coc-settings.json:

{
  "languageserver": {
    "config": {
      "command": "autoconf-language-server",
      "filetypes": [
        "config"
      ]
    },
    "make": {
      "command": "make-language-server",
      "filetypes": [
        "make"
      ]
    }
  }
}

vim-lsp

~/.config/nvim/init.vim:

if executable('autoconf-language-server')
  augroup lsp
    autocmd!
    autocmd User lsp_setup call lsp#register_server({
          \ 'name': 'config',
          \ 'cmd': {server_info->['autoconf-language-server']},
          \ 'whitelist': ['config'],
          \ })
  augroup END
endif
if executable('make-language-server')
  augroup lsp
    autocmd!
    autocmd User lsp_setup call lsp#register_server({
          \ 'name': 'make',
          \ 'cmd': {server_info->['make-language-server']},
          \ 'whitelist': ['make'],
          \ })
  augroup END
endif

Neovim

~/.config/nvim/init.lua:

vim.api.nvim_create_autocmd({ "BufEnter" }, {
  pattern = { "configure.ac" },
  callback = function()
    vim.lsp.start({
      name = "config",
      cmd = { "config-language-server" }
    })
  end,
})
vim.api.nvim_create_autocmd({ "BufEnter" }, {
  pattern = { "Makefile.am", "Makefile" },
  callback = function()
    vim.lsp.start({
      name = "make",
      cmd = { "make-language-server" }
    })
  end,
})

Emacs

~/.emacs.d/init.el:

(make-lsp-client :new-connection
(lsp-stdio-connection
  `(,(executable-find "autoconf-language-server")))
  :activation-fn (lsp-activate-on "configure.ac")
  :server-id "config")))
(make-lsp-client :new-connection
(lsp-stdio-connection
  `(,(executable-find "make-language-server")))
  :activation-fn (lsp-activate-on "Makefile.am" "Makefile")
  :server-id "make")))

Helix

~/.config/helix/languages.toml:

[[language]]
name = "autoconf"
language-servers = [ "autoconf-language-server",]

[[language]]
name = "make"
language-servers = [ "make-language-server",]

[language_server.autoconf-language-server]
command = "autoconf-language-server"

[language_server.make-language-server]
command = "make-language-server"

KaKoune

kak-lsp

~/.config/kak-lsp/kak-lsp.toml:

[language_server.autoconf-language-server]
filetypes = [ "autoconf",]
command = "autoconf-language-server"

[language_server.make-language-server]
filetypes = [ "make",]
command = "make-language-server"

Sublime

~/.config/sublime-text-3/Packages/Preferences.sublime-settings:

{
  "clients": {
    "autoconf": {
      "command": [
        "autoconf-language-server"
      ],
      "enabled": true,
      "selector": "source.autoconf"
    },
    "make": {
      "command": [
        "make-language-server"
      ],
      "enabled": true,
      "selector": "source.make"
    }
  }
}

Visual Studio Code

An official support of generic LSP client is pending.

vscode-glspc

~/.config/Code/User/settings.json:

{
  "glspc.serverPath": "make-language-server",
  "glspc.languageId": "make"
}