From 1ebef354a521c97db6e383f5513de161c2996307 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 11 Apr 2026 16:14:39 +0200 Subject: [PATCH] languages/hcl: refactor lsp.servers to use lsp/presets/ --- docs/manual/release-notes/rl-0.9.md | 4 ++-- modules/plugins/languages/hcl.nix | 35 +++++++++-------------------- 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 81d1abe5..4c42742c 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -77,9 +77,9 @@ - Renamed `vala_ls` to `vala-language-server`. -- Renamed `terraformls-tf` to `terraform-ls`. +- Renamed `terraformls-tf` and `terraformls-hcl` to `terraform-ls`. -- Renamed `tofuls-tf` to `tofu-ls`. +- Renamed `tofuls-tf` and `tofuls-hcl` to `tofu-ls`. ## Changelog {#sec-release-0-9-changelog} diff --git a/modules/plugins/languages/hcl.nix b/modules/plugins/languages/hcl.nix index fe4a389e..60ad6f5f 100644 --- a/modules/plugins/languages/hcl.nix +++ b/modules/plugins/languages/hcl.nix @@ -6,30 +6,17 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption literalExpression; + inherit (lib) genAttrs; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; + inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.hcl; - defaultServers = ["tofuls-hcl"]; - servers = { - terraformls-hcl = { - enable = true; - cmd = [(getExe pkgs.terraform-ls) "serve"]; - filetypes = ["hcl"]; - root_markers = [".git"]; - }; - tofuls-hcl = { - enable = true; - cmd = [(getExe pkgs.tofu-ls) "serve"]; - filetypes = ["hcl"]; - root_markers = [".terraform" ".git"]; - }; - # TODO: package nomad-lsp and offer as an option here too - }; + defaultServers = ["tofu-ls"]; + servers = ["terraform-ls" "tofu-ls"]; defaultFormat = ["hclfmt"]; formats = { @@ -64,7 +51,7 @@ in { defaultText = literalExpression "config.vim.lsp.enable"; }; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "HCL LSP server to use"; }; @@ -116,13 +103,11 @@ 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 = ["hcl"]; + }); }; })