nix-community.nixvim/modules/lsp/server.nix
Matt Sturgeon 29aa60b43a
modules/lsp: add per-server name option
This allows users to override the name used for a given `lsp.servers.*`
entry. The default is still the attr-name.

This may be useful to inject raw lua, or to configure the same server in
different ways via different attrs.
2025-04-28 18:23:49 +01:00

59 lines
1.3 KiB
Nix

{ lib, name, ... }:
let
inherit (lib) types;
in
{
options = {
enable = lib.mkEnableOption "the language server";
name = lib.mkOption {
type = types.maybeRaw types.str;
description = ''
The name of the language server, supplied to functions like `vim.lsp.enable()`.
'';
default = name;
defaultText = lib.literalMD "the attribute name";
};
activate = lib.mkOption {
type = types.bool;
description = ''
Whether to call `vim.lsp.enable()` for this server.
'';
default = true;
example = false;
};
package = lib.mkOption {
type = with types; nullOr package;
default = null;
description = ''
Package to use for this language server.
Alternatively, the language server should be available on your `$PATH`.
'';
};
config = lib.mkOption {
type = with types; attrsOf anything;
description = ''
Configurations for each language server.
'';
default = { };
example = {
cmd = [
"clangd"
"--background-index"
];
root_markers = [
"compile_commands.json"
"compile_flags.txt"
];
filetypes = [
"c"
"cpp"
];
};
};
};
}