diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 5a0f5eee..11d66b46 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -81,6 +81,8 @@ - Renamed `tofuls-tf` and `tofuls-hcl` to `tofu-ls`. +- Renamed `ruby_lsp` to `ruby-lsp`. + - Removed `languages.tailwind` which only provided an LSP. Use `lsp.presets.tailwindcss-language-server` instead. diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index 5ebcdea5..392a4bb4 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -6,46 +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.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf; - inherit (lib.types) enum; + inherit (lib.types) enum listOf; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.ruby; defaultServers = ["solargraph"]; - servers = { - ruby_lsp = { - enable = true; - cmd = [(getExe pkgs.ruby-lsp)]; - filetypes = ["ruby" "eruby"]; - root_markers = ["Gemfile" ".git"]; - init_options = { - formatter = "auto"; - }; - }; - - solargraph = { - enable = true; - cmd = [(getExe pkgs.rubyPackages.solargraph) "stdio"]; - filetypes = ["ruby"]; - root_markers = ["Gemfile" ".git"]; - settings = { - solargraph = { - diagnostics = true; - }; - }; - - flags = { - debounce_text_changes = 150; - }; - - init_options = { - formatting = true; - }; - }; - }; + servers = ["ruby-lsp" "solargraph"]; # testing @@ -85,7 +56,7 @@ in { }; servers = mkOption { - type = deprecatedSingleOrListOf "vim.language.ruby.lsp.servers" (enum (attrNames servers)); + type = listOf (enum servers); default = defaultServers; description = "Ruby LSP server to use"; }; @@ -121,12 +92,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 = ["ruby" "eruby"]; + }); + }; }) (mkIf cfg.format.enable {