lsp.servers

LSP servers to enable and/or configure.

This option is implemented using neovim’s vim.lsp lua API.

You may also want to use nvim-lspconfig to install default configs for many language servers. This can be installed using plugins.lspconfig.enable.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "*" = {
    settings = {
      capabilities = {
        textDocument = {
          semanticTokens = {
            multilineTokenSupport = true;
          };
        };
      };
      root_markers = [
        ".git"
      ];
    };
  };
  clangd = {
    enable = true;
    settings = {
      cmd = [
        "clangd"
        "--background-index"
      ];
      filetypes = [
        "c"
        "cpp"
      ];
      root_markers = [
        "compile_commands.json"
        "compile_flags.txt"
      ];
    };
  };
  luals = {
    enable = true;
  };
}

Declared by:

lsp.servers.<name>.enable

Whether to enable the language server.

Type: boolean

Default: false

Example: true

Declared by:

lsp.servers.<name>.package

The language server package to use.

Alternatively, the language server should be installed on your $PATH.

Type: null or package

Default: null

Declared by:

lsp.servers.<name>.activate

Whether to call vim.lsp.enable() for the language server.

Type: boolean

Default: true, unless the server’s name is *

Example: false

Declared by:

lsp.servers.<name>.name

The name to use for the language server. Supplied to functions like vim.lsp.enable().

Type: string or raw lua code

Default: the attribute name

Declared by:

lsp.servers.<name>.settings

Configurations for the language server.

Type: attribute set of anything

Default: { }

Example:

{
  cmd = [
    "clangd"
    "--background-index"
  ];
  filetypes = [
    "c"
    "cpp"
  ];
  root_markers = [
    "compile_commands.json"
    "compile_flags.txt"
  ];
}

Declared by: