From a072e3c3a710ee2c76c971a29cca5ae700fc96da Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Wed, 30 Apr 2025 22:47:51 +0100 Subject: [PATCH] modules/lsp: enable `servers."*"` by default --- modules/lsp/default.nix | 13 ++++++------- modules/lsp/server-base.nix | 8 +++++++- tests/test-sources/modules/lsp.nix | 11 ++++------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/modules/lsp/default.nix b/modules/lsp/default.nix index b43badb7..1697a7f5 100644 --- a/modules/lsp/default.nix +++ b/modules/lsp/default.nix @@ -93,6 +93,8 @@ in type = types.submodule ( lib.modules.importApply ./server-base.nix { displayName = "all servers"; + enable.name = "the `*` server config"; + enable.default = true; settings.extraDescription = '' Will be merged by neovim using the behaviour of [`vim.tbl_deep_extend()`](https://neovim.io/doc/user/lua.html#vim.tbl_deep_extend()). ''; @@ -123,13 +125,10 @@ in ''; default = { }; example = { - "*" = { - enable = true; - settings = { - root_markers = [ ".git" ]; - capabilities.textDocument.semanticTokens = { - multilineTokenSupport = true; - }; + "*".settings = { + root_markers = [ ".git" ]; + capabilities.textDocument.semanticTokens = { + multilineTokenSupport = true; }; }; luals.enable = true; diff --git a/modules/lsp/server-base.nix b/modules/lsp/server-base.nix index 06a3c449..664f6672 100644 --- a/modules/lsp/server-base.nix +++ b/modules/lsp/server-base.nix @@ -2,6 +2,7 @@ { displayName ? "the language server", settings ? null, + enable ? null, }: { lib, ... }: let @@ -9,7 +10,12 @@ let in { options = { - enable = lib.mkEnableOption displayName; + enable = lib.mkOption rec { + type = types.bool; + description = "Whether to enable ${enable.name or displayName}. ${enable.extraDescription or ""}"; + default = enable.default or false; + example = enable.example or (!default); + }; settings = lib.mkOption { type = with types; attrsOf anything; diff --git a/tests/test-sources/modules/lsp.nix b/tests/test-sources/modules/lsp.nix index aa60b1b9..a7ed8ded 100644 --- a/tests/test-sources/modules/lsp.nix +++ b/tests/test-sources/modules/lsp.nix @@ -1,14 +1,11 @@ { example = { lsp.servers = { - "*" = { + "*".settings = { enable = true; - settings = { - enable = true; - root_markers = [ ".git" ]; - capabilities.textDocument.semanticTokens = { - multilineTokenSupport = true; - }; + root_markers = [ ".git" ]; + capabilities.textDocument.semanticTokens = { + multilineTokenSupport = true; }; }; luals.enable = true;