diff --git a/modules/plugins/languages/openscad.nix b/modules/plugins/languages/openscad.nix index e1ca096d..4ff18ff8 100644 --- a/modules/plugins/languages/openscad.nix +++ b/modules/plugins/languages/openscad.nix @@ -4,12 +4,10 @@ lib, ... }: let - inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) enum listOf; - inherit (lib.meta) getExe; - inherit (lib.nvim.attrsets) mapListToAttrs; + inherit (lib) genAttrs; cfg = config.vim.languages.openscad; /* @@ -22,13 +20,7 @@ */ defaultServers = ["openscad-lsp"]; - servers = { - openscad-lsp = { - enable = true; - cmd = [(getExe pkgs.openscad-lsp) "--stdio"]; - filetypes = ["openscad"]; - }; - }; + servers = ["openscad-lsp"]; in { options.vim.languages.openscad = { enable = mkEnableOption "OpenSCAD language support"; @@ -42,7 +34,7 @@ in { }; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "OpenSCAD LSP server to use"; }; @@ -51,12 +43,12 @@ in { config = mkIf cfg.enable (mkMerge [ (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 = ["openscad"]; + }); + }; }) ]); }