From bba6db1fd4e578b6e7a59def9d3c0ed0f129afd0 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 11 Apr 2026 18:18:42 +0200 Subject: [PATCH] languages/nix: refactor lsp.servers to use lsp/presets/ --- modules/plugins/languages/nix.nix | 35 ++++++++++--------------------- 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index 29185b12..eac9264e 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -5,32 +5,18 @@ ... }: let inherit (builtins) attrNames; - inherit (lib) concatStringsSep; + inherit (lib) concatStringsSep genAttrs; inherit (lib.meta) getExe; inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum; + inherit (lib.types) enum listOf; inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.nix; defaultServers = ["nil"]; - servers = { - nil = { - enable = true; - cmd = [(getExe pkgs.nil)]; - filetypes = ["nix"]; - root_markers = [".git" "flake.nix"]; - }; - - nixd = { - enable = true; - cmd = [(getExe pkgs.nixd)]; - filetypes = ["nix"]; - root_markers = [".git" "flake.nix"]; - }; - }; + servers = ["nil" "nixd"]; defaultFormat = ["alejandra"]; formats = { @@ -91,7 +77,7 @@ in { defaultText = literalExpression "config.vim.lsp.enable"; }; servers = mkOption { - type = deprecatedSingleOrListOf "vim.language.nix.lsp.servers" (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "Nix LSP server to use"; }; @@ -147,12 +133,13 @@ in { }) (mkIf cfg.lsp.enable { - vim.lsp.servers = - mapListToAttrs (n: { - name = n; - value = servers.${n}; - }) - cfg.lsp.servers; + vim.lsp = { + presets = genAttrs cfg.lsp.servers (_: {enable = true;}); + servers = genAttrs cfg.lsp.servers (_: { + filetypes = ["nix"]; + root_markers = ["flake.nix"]; + }); + }; }) (mkIf cfg.format.enable {