From 123c102a13d1aad053984af08ecc34e807e1f69d Mon Sep 17 00:00:00 2001 From: traxys Date: Wed, 10 Jul 2024 22:30:09 +0200 Subject: [PATCH] plugin/rustaceanvim: Handle rust-analyzer settings rename --- .../languages/rust/rustaceanvim/default.nix | 20 +++++++++++++++++-- .../rust/rustaceanvim/settings-options.nix | 4 ++-- .../plugins/languages/rust/rustaceanvim.nix | 2 +- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/plugins/languages/rust/rustaceanvim/default.nix b/plugins/languages/rust/rustaceanvim/default.nix index 3fb6c3eb..78fd2343 100644 --- a/plugins/languages/rust/rustaceanvim/default.nix +++ b/plugins/languages/rust/rustaceanvim/default.nix @@ -34,7 +34,7 @@ helpers.neovim-plugin.mkNeovimPlugin config { "nightly" "rust-analyzer" ]; - settings = { + default_settings = { rust-analyzer = { inlayHints = { lifetimeElisionHints = { @@ -58,7 +58,23 @@ helpers.neovim-plugin.mkNeovimPlugin config { ''; in mkMerge [ - { extraPackages = [ cfg.rustAnalyzerPackage ]; } + { + extraPackages = [ cfg.rustAnalyzerPackage ]; + # TODO: remove after 24.11 + warnings = + optional + (hasAttrByPath [ + "settings" + "server" + "settings" + ] cfg) + '' + The `plugins.rustaceanvim.settings.server.settings' option has been renamed to `plugins.rustaceanvim.settings.server.default_settings'. + + Note that if you supplied an attrset and not a function you need to set this attr set in: + `plugins.rustaceanvim.settings.server.default_settings.rust-analyzer'. + ''; + } # If nvim-lspconfig is enabled: (mkIf config.plugins.lsp.enable { # Use the same `on_attach` callback as for the other LSP servers diff --git a/plugins/languages/rust/rustaceanvim/settings-options.nix b/plugins/languages/rust/rustaceanvim/settings-options.nix index b135ca46..5333dfd2 100644 --- a/plugins/languages/rust/rustaceanvim/settings-options.nix +++ b/plugins/languages/rust/rustaceanvim/settings-options.nix @@ -254,10 +254,10 @@ with lib; ``` ''; - settings = + default_settings = helpers.mkNullOrStrLuaFnOr (types.submodule { - options = import ../../../lsp/language-servers/rust-analyzer-config.nix lib helpers; + options.rust-analyzer = import ../../../lsp/language-servers/rust-analyzer-config.nix lib helpers; freeformType = with types; attrsOf anything; }) '' diff --git a/tests/test-sources/plugins/languages/rust/rustaceanvim.nix b/tests/test-sources/plugins/languages/rust/rustaceanvim.nix index a1318fa5..725c7160 100644 --- a/tests/test-sources/plugins/languages/rust/rustaceanvim.nix +++ b/tests/test-sources/plugins/languages/rust/rustaceanvim.nix @@ -143,7 +143,7 @@ plugins.rustaceanvim = { enable = true; - settings.server.settings = { + settings.server.default_settings.rust-analyzer = { linkedProjects = [ "foo/bar/hello" ]; numThreads = 42; joinLines.joinElseIf = true;