From 288f76c79ecce5f0c8d6bc62008ff15227bcff9a Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sun, 12 Apr 2026 00:26:27 +0200 Subject: [PATCH] languages/bash: refactor lsp.servers to use lsp/presets/ --- docs/manual/release-notes/rl-0.9.md | 2 ++ modules/plugins/languages/bash.nix | 34 ++++++++++------------------- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index afe97652..a91328c1 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -89,6 +89,8 @@ - Renamed `astro` to `astro-language-server`. +- Renamed `bash-ls` to `bash-language-server`. + - Removed `languages.tailwind` which only provided an LSP. Use `lsp.presets.tailwindcss-language-server` instead. diff --git a/modules/plugins/languages/bash.nix b/modules/plugins/languages/bash.nix index d9d78b2b..35e9bda8 100644 --- a/modules/plugins/languages/bash.nix +++ b/modules/plugins/languages/bash.nix @@ -8,27 +8,15 @@ inherit (lib.options) mkOption mkEnableOption literalExpression; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum bool; - inherit (lib.generators) mkLuaInline; + inherit (lib.types) enum bool listOf; + inherit (lib) genAttrs; inherit (lib.nvim.types) diagnostics mkGrammarOption deprecatedSingleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.bash; - defaultServers = ["bash-ls"]; - servers = { - bash-ls = { - enable = true; - cmd = [(getExe pkgs.bash-language-server) "start"]; - filetypes = ["bash" "sh"]; - root_markers = [".git"]; - settings = { - basheIde = { - globPattern = mkLuaInline "vim.env.GLOB_PATTERN or '*@(.sh|.inc|.bash|.command)'"; - }; - }; - }; - }; + defaultServers = ["bash-language-server"]; + servers = ["bash-language-server"]; defaultFormat = ["shfmt"]; formats = { @@ -65,7 +53,7 @@ in { defaultText = literalExpression "config.vim.lsp.enable"; }; servers = mkOption { - type = deprecatedSingleOrListOf "vim.language.bash.lsp.servers" (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "Bash LSP server to use"; }; @@ -107,12 +95,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 = ["bash" "sh" "zsh"]; + }); + }; }) (mkIf cfg.format.enable {