From 60a69abead543a15fb45cd1819a79d8fc352b533 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 11 Apr 2026 17:08:47 +0200 Subject: [PATCH] languages/r: refactor lsp.servers to use lsp/presets/ --- docs/manual/release-notes/rl-0.9.md | 2 ++ modules/plugins/languages/r.nix | 38 +++++++++-------------------- 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 11d66b46..572dea25 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -83,6 +83,8 @@ - Renamed `ruby_lsp` to `ruby-lsp`. +- Renamed `r_language_server` to `r-languageserver`. + - Removed `languages.tailwind` which only provided an LSP. Use `lsp.presets.tailwindcss-language-server` instead. diff --git a/modules/plugins/languages/r.nix b/modules/plugins/languages/r.nix index 764e0eba..240c3334 100644 --- a/modules/plugins/languages/r.nix +++ b/modules/plugins/languages/r.nix @@ -7,18 +7,13 @@ inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum; - inherit (lib.meta) getExe; + inherit (lib.types) enum listOf; + inherit (lib) genAttrs; inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; - inherit (lib.generators) mkLuaInline; cfg = config.vim.languages.r; - r-with-languageserver = pkgs.rWrapper.override { - packages = [pkgs.rPackages.languageserver]; - }; - defaultFormat = ["format_r"]; formats = { styler = { @@ -47,19 +42,8 @@ }; }; - defaultServers = ["r_language_server"]; - servers = { - r_language_server = { - enable = true; - cmd = [(getExe r-with-languageserver) "--no-echo" "-e" "languageserver::run()"]; - filetypes = ["r" "rmd" "quarto"]; - root_dir = mkLuaInline '' - function(bufnr, on_dir) - on_dir(vim.fs.root(bufnr, '.git') or vim.uv.os_homedir()) - end - ''; - }; - }; + defaultServers = ["r-languageserver"]; + servers = ["r-languageserver"]; in { options.vim.languages.r = { enable = mkEnableOption "R language support"; @@ -83,7 +67,7 @@ in { }; servers = mkOption { - type = deprecatedSingleOrListOf "vim.language.r.lsp.servers" (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "R LSP server to use"; }; @@ -127,12 +111,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 = ["r" "rmd" "quarto"]; + }); + }; }) ]); }