diff --git a/modules/plugins/languages/xml.nix b/modules/plugins/languages/xml.nix index 7eae0026..217f2949 100644 --- a/modules/plugins/languages/xml.nix +++ b/modules/plugins/languages/xml.nix @@ -4,27 +4,16 @@ lib, ... }: let - inherit (builtins) attrNames; inherit (lib.options) mkOption mkEnableOption literalExpression; - inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) enum listOf; inherit (lib.nvim.types) mkGrammarOption; - inherit (lib.nvim.attrsets) mapListToAttrs; + inherit (lib) genAttrs; cfg = config.vim.languages.xml; defaultServers = ["lemminx"]; - servers = { - lemminx = { - enable = true; - cmd = [ - (getExe pkgs.lemminx) - ]; - filetypes = ["xml"]; - root_markers = [".git"]; - }; - }; + servers = ["lemminx"]; in { options.vim.languages.xml = { enable = mkEnableOption "XML language support"; @@ -47,7 +36,7 @@ in { defaultText = literalExpression "config.vim.lsp.enable"; }; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "XML LSP server to use"; }; @@ -61,12 +50,12 @@ in { }) (mkIf cfg.lsp.enable { - vim.lsp.servers = - mapListToAttrs (name: { - inherit name; - value = servers.${name}; - }) - cfg.lsp.servers; + vim.lsp = { + presets = genAttrs cfg.lsp.servers (_: {enable = true;}); + servers = genAttrs cfg.lsp.servers (_: { + filetypes = ["xml"]; + }); + }; }) ]); }