diff --git a/modules/plugins/languages/wgsl.nix b/modules/plugins/languages/wgsl.nix index 016f6c4a..aa99022c 100644 --- a/modules/plugins/languages/wgsl.nix +++ b/modules/plugins/languages/wgsl.nix @@ -4,26 +4,16 @@ pkgs, ... }: let - inherit (builtins) attrNames; inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; + inherit (lib.nvim.types) mkGrammarOption; inherit (lib.options) mkEnableOption mkOption literalExpression; - inherit (lib.types) enum; - inherit (lib.meta) getExe; - inherit (lib.nvim.attrsets) mapListToAttrs; + inherit (lib.types) enum listOf; + inherit (lib) genAttrs; cfg = config.vim.languages.wgsl; defaultServers = ["wgsl-analyzer"]; - servers = { - wgsl-analyzer = { - enable = true; - cmd = [(getExe pkgs.wgsl-analyzer)]; - filetypes = ["wgsl"]; - root_markers = [".git"]; - settings = {}; - }; - }; + servers = ["wgsl-analyzer"]; in { options.vim.languages.wgsl = { enable = mkEnableOption "WGSL language support"; @@ -47,7 +37,7 @@ in { }; servers = mkOption { - type = deprecatedSingleOrListOf "vim.language.wgsl.lsp.servers" (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "WGSL LSP server to use"; }; @@ -63,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 = ["wgsl"]; + }); + }; }) ]); }