From 84026fed883337ad3852966a2c3b2521d7fd5767 Mon Sep 17 00:00:00 2001 From: Soliprem Date: Tue, 25 Nov 2025 23:19:53 +0100 Subject: [PATCH] modules/languages: fix rust crates-nvim deprecation move the completion into the lsp --- configuration.nix | 2 +- modules/plugins/languages/rust.nix | 33 +++++++++++++++++------------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/configuration.nix b/configuration.nix index 750862af..cc314288 100644 --- a/configuration.nix +++ b/configuration.nix @@ -69,7 +69,7 @@ isMaximal: { typst.enable = isMaximal; rust = { enable = isMaximal; - crates.enable = isMaximal; + extensions.crates-nvim.enable = isMaximal; }; # Language modules that are not as common. diff --git a/modules/plugins/languages/rust.nix b/modules/plugins/languages/rust.nix index 157c3d17..62ba63cd 100644 --- a/modules/plugins/languages/rust.nix +++ b/modules/plugins/languages/rust.nix @@ -10,7 +10,7 @@ inherit (lib.strings) optionalString; inherit (lib.lists) isList; inherit (lib.attrsets) attrNames; - inherit (lib.types) bool package str listOf either enum; + inherit (lib.types) bool package str listOf either enum int; inherit (lib.nvim.lua) expToLua toLuaObject; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.types) mkGrammarOption mkPluginSetupOption deprecatedSingleOrListOf; @@ -94,19 +94,24 @@ in { enable = mkEnableOption "crates.io dependency management [crates-nvim]"; setupOpts = mkPluginSetupOption "crates-nvim" { - completion.cmp.enable = mkOption { - type = bool; - default = config.vim.autocomplete.nvim-cmp.enable; - defaultText = "{option}`config.vim.autocomplete.nvim-cmp.enable`"; - description = '' - Whether to add crates.nvim as a source for completion plugins. The following - plugins are supported by crates.nvim: - - * nvim-cmp - * coq.nvim - - However nvf only supports auto-setup for nvim-cmp. - ''; + lsp = { + enabled = mkEnableOption "crates.nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; + actions = mkEnableOption "actions for crates-nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; + # completion = { + # enabled = mkEnableOption "completion for crates-nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; + # max_results = mkOption { + # description = "The maximum number of search results to display"; + # type = int; + # default = 8; + # }; + # min_chars = mkOption { + # description = "The minimum number of characters to type before completions begin appearing"; + # type = int; + # default = 3; + # }; + # }; + completion = mkEnableOption "completion for crates-nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; + hover = mkEnableOption "hover actions for crates-nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; }; }; };