From 65f3b779c6a50c30a1448a4d5f3d427f6c34bce7 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sun, 12 Apr 2026 15:33:26 +0200 Subject: [PATCH] languages/glsl: refactor lsp.servers to use lsp/presets/ --- modules/plugins/languages/glsl.nix | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/modules/plugins/languages/glsl.nix b/modules/plugins/languages/glsl.nix index c4df32e3..15c7072f 100644 --- a/modules/plugins/languages/glsl.nix +++ b/modules/plugins/languages/glsl.nix @@ -4,25 +4,16 @@ pkgs, ... }: let - inherit (builtins) attrNames; inherit (lib.modules) mkIf mkMerge; inherit (lib.nvim.types) mkGrammarOption; inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.types) enum listOf; - inherit (lib.meta) getExe; - inherit (lib.nvim.attrsets) mapListToAttrs; + inherit (lib) genAttrs; cfg = config.vim.languages.glsl; defaultServers = ["glsl_analyzer"]; - servers = { - glsl_analyzer = { - enable = true; - cmd = [(getExe pkgs.glsl_analyzer)]; - filetypes = ["glsl" "vert" "tesc" "tese" "frag" "geom" "comp"]; - root_markers = [".git"]; - }; - }; + servers = ["glsl_analyzer"]; in { options.vim.languages.glsl = { enable = mkEnableOption "GLSL language support"; @@ -46,7 +37,7 @@ in { }; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "GLSL LSP server to use"; }; @@ -62,12 +53,12 @@ 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 = ["glsl" "vert" "tesc" "tese" "frag" "geom" "comp"]; + }); + }; }) ]); }