modules/lsp: move server module to dedicated file

This commit is contained in:
Matt Sturgeon 2025-04-28 18:02:00 +01:00
parent 74368bcfc1
commit 3722f88c5d
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
2 changed files with 53 additions and 50 deletions

View file

@ -4,57 +4,10 @@
...
}:
let
inherit (lib) mkOption types;
inherit (lib) types;
inherit (lib.nixvim) toLuaObject;
cfg = config.lsp;
serverType = types.submodule {
options = {
enable = lib.mkEnableOption "the language server";
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 = 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"
];
};
};
};
};
in
{
options.lsp = {
@ -70,8 +23,8 @@ in
enable = lib.mkEnableOption "inlay hints globally";
};
servers = mkOption {
type = types.attrsOf serverType;
servers = lib.mkOption {
type = types.attrsOf (types.submodule ./server.nix);
description = ''
LSP servers to enable and/or configure.

50
modules/lsp/server.nix Normal file
View file

@ -0,0 +1,50 @@
{ lib, ... }:
let
inherit (lib) types;
in
{
options = {
enable = lib.mkEnableOption "the language server";
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"
];
};
};
};
}