From faa58857030cfd35f5c69d589e428f1124ab9b81 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sun, 12 Apr 2026 00:23:58 +0200 Subject: [PATCH] languages/astro: refactor lsp.servers to use lsp/presets/ --- docs/manual/release-notes/rl-0.9.md | 2 ++ modules/plugins/languages/astro.nix | 44 ++++++++--------------------- 2 files changed, 13 insertions(+), 33 deletions(-) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index a524b2f1..afe97652 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -87,6 +87,8 @@ - Renamed `julials` to `julia-languageserver`. +- Renamed `astro` to `astro-language-server`. + - Removed `languages.tailwind` which only provided an LSP. Use `lsp.presets.tailwindcss-language-server` instead. diff --git a/modules/plugins/languages/astro.nix b/modules/plugins/languages/astro.nix index af647ad0..729e1f69 100644 --- a/modules/plugins/languages/astro.nix +++ b/modules/plugins/languages/astro.nix @@ -9,37 +9,15 @@ inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.types) enum coercedTo; + inherit (lib.types) enum coercedTo listOf; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf; - inherit (lib.generators) mkLuaInline; + inherit (lib) genAttrs; cfg = config.vim.languages.astro; - defaultServers = ["astro"]; - servers = { - astro = { - enable = true; - cmd = [(getExe pkgs.astro-language-server) "--stdio"]; - filetypes = ["astro"]; - root_markers = ["package.json" "tsconfig.json" "jsconfig.json" ".git"]; - init_options = { - typescript = {}; - }; - before_init = - mkLuaInline - /* - lua - */ - '' - function(_, config) - if config.init_options and config.init_options.typescript and not config.init_options.typescript.tsdk then - config.init_options.typescript.tsdk = util.get_typescript_server_path(config.root_dir) - end - end - ''; - }; - }; + defaultServers = ["astro-language-server"]; + servers = ["astro-language-server"]; defaultFormat = ["prettier"]; formats = let @@ -107,7 +85,7 @@ in { defaultText = literalExpression "config.vim.lsp.enable"; }; servers = mkOption { - type = deprecatedSingleOrListOf "vim.language.astro.lsp.servers" (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "Astro LSP server to use"; }; @@ -151,12 +129,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 = ["astro"]; + }); + }; }) (mkIf cfg.format.enable {