diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 83839245..d427188f 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -289,6 +289,10 @@ - Fix [blink.cmp] breaking when built-in sources were modified. - Fix [conform.nvim] not allowing disabling formatting on and after save. Use `null` value to disable them if conform is enabled. +- Fix Helm-YAML language module integration. YAML diagnostics will now remain in + `helmfile`s when both are enabled. +- Fix YAML language module not activating LSP keybinds if the Helm language + module was also enabled. [TheColorman](https://github.com/TheColorman): diff --git a/modules/plugins/languages/helm.nix b/modules/plugins/languages/helm.nix index 1971eb31..450177ad 100644 --- a/modules/plugins/languages/helm.nix +++ b/modules/plugins/languages/helm.nix @@ -6,7 +6,7 @@ }: let inherit (builtins) attrNames head; inherit (lib.options) mkEnableOption mkOption; - inherit (lib.modules) mkIf mkMerge; + inherit (lib.modules) mkDefault mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.types) enum; inherit (lib.nvim.types) mkGrammarOption singleOrListOf; @@ -27,11 +27,13 @@ dynamicRegistration = true; }; }; - settings = { + settings = mkIf (yamlCfg.enable && yamlCfg.lsp.enable) { helm-ls = { yamlls = { - # TODO: Determine if this is a good enough solution - path = (head yamlCfg.lsp.servers).cmd; + # Without this being enabled, the YAML language module will look broken in helmfiles + # if both modules are enabled at once. + enabled = mkDefault yamlCfg.lsp.enable; + path = head config.vim.lsp.servers.${head yamlCfg.lsp.servers}.cmd; }; }; }; diff --git a/modules/plugins/languages/yaml.nix b/modules/plugins/languages/yaml.nix index 1869b1c1..b06ef17f 100644 --- a/modules/plugins/languages/yaml.nix +++ b/modules/plugins/languages/yaml.nix @@ -5,6 +5,7 @@ ... }: let inherit (builtins) attrNames; + inherit (lib.generators) mkLuaInline; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; @@ -14,16 +15,18 @@ cfg = config.vim.languages.yaml; - onAttach = - if config.vim.languages.helm.lsp.enable + on_attach = mkLuaInline ( + if config.vim.languages.helm.lsp.enable && config.vim.languages.helm.enable then '' - on_attach = function(client, bufnr) + function(client, bufnr) + default_on_attach() local filetype = vim.bo[bufnr].filetype if filetype == "helm" then client.stop() end end'' - else "on_attach = default_on_attach"; + else "default_on_attach" + ); defaultServers = ["yaml-language-server"]; servers = { @@ -32,7 +35,7 @@ cmd = [(getExe pkgs.yaml-language-server) "--stdio"]; filetypes = ["yaml" "yaml.docker-compose" "yaml.gitlab" "yaml.helm-values"]; root_markers = [".git"]; - on_attach = onAttach; + inherit on_attach; # -- https://github.com/redhat-developer/vscode-redhat-telemetry#how-to-disable-telemetry-reporting settings = { redhat = {