modules/lsp/servers: move to dedicated file/dir

Move the code related to the `lsp.servers` option into a dedicated module,
cleaning up `modules/lsp/default.nix`.
This commit is contained in:
Matt Sturgeon 2025-05-05 22:36:48 +01:00
parent 64cd675ece
commit 5308425718
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
5 changed files with 175 additions and 166 deletions

View file

@ -0,0 +1,49 @@
{ lib, ... }:
let
inherit (lib) types;
in
{
options = {
enable = lib.mkOption {
type = types.bool;
description = "Whether to enable global defaults shared by all servers.";
default = true;
example = false;
};
name = lib.mkOption {
type = types.str;
description = ''
The name to use for global defaults shared by all servers.
Supplied to functions like `vim.lsp.config()`.
Will always be `"*"`.
'';
readOnly = true;
};
settings = lib.mkOption {
type = with types; attrsOf anything;
description = ''
Default configuration shared by all servers.
Will be merged by neovim using the behaviour of [`vim.tbl_deep_extend()`](https://neovim.io/doc/user/lua.html#vim.tbl_deep_extend()).
'';
default = { };
example = {
root_markers = [ ".git" ];
capabilities.textDocument.semanticTokens = {
multilineTokenSupport = true;
};
};
};
};
imports = [
./server-renames.nix
];
# Define the read-only `name` here, instead of via `default`, to avoid documenting it twice
config.name = "*";
}