From 9ae9d76e896c78fbc426414f114aca70b1e6ad89 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 28 Sep 2026 15:52:37 -0500 Subject: [PATCH 1/2] vimPlugins.rust-tools-nvim: remove Upstream has been archived since January 2024. A deprecation alias was added while the plugin stayed in the generated set, so the alias shadowed it and evaluation failed with "Alias rust-tools-nvim is still in vim-plugins" instead of pointing users to rustaceanvim. Finish the removal and keep a throwing alias. --- pkgs/applications/editors/vim/plugins/aliases.nix | 2 +- .../applications/editors/vim/plugins/generated.nix | 14 -------------- .../applications/editors/vim/plugins/overrides.nix | 4 ---- .../editors/vim/plugins/vim-plugin-names | 1 - 4 files changed, 1 insertion(+), 20 deletions(-) diff --git a/pkgs/applications/editors/vim/plugins/aliases.nix b/pkgs/applications/editors/vim/plugins/aliases.nix index 423895d4e41b..6f89bd8b1ac7 100644 --- a/pkgs/applications/editors/vim/plugins/aliases.nix +++ b/pkgs/applications/editors/vim/plugins/aliases.nix @@ -64,7 +64,7 @@ mapAliases ( playground = throw "'vimPlugins.playground' has been archived"; # Added 2025-12-18 pure-lua = lib.warnOnInstantiate "Please replace 'vimPlugins.pure-lua' with 'vimPlugins.moonlight-nvim' as this name was an error" moonlight-nvim; # Added 2025-11-17 registers-nvim = throw "'vimPlugins.registers-nvim' has been removed: the upstream repository got deleted"; # Added 2026-04-30 - rust-tools-nvim = lib.warnOnInstantiate "'vimPlugins.rust-tools-nvim' is abandoned by upstream; you should use 'vimPlugins.rustaceanvim'" rust-tools-nvim; # Added 2026-02-04 + rust-tools-nvim = throw "'vimPlugins.rust-tools-nvim' has been removed: abandoned by upstream. Use rustaceanvim"; # Added 2026-09-28 Spacegray-vim = throw "'vimPlugins.Spacegray-vim' has been removed: abandoned by upstream"; # Added 2025-03-24 SpaceVim = throw "'vimPlugins.SpaceVim' didn't work properly in vimPlugins, please use top-level 'spacevim' instead"; # Added 2024-11-27 spacevim = throw "'vimPlugins.spacevim' was unmaintained for the last 6 years, please use top-level 'spacevim'"; # Added 2024-11-27 diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 87cd750901e0..df9c7e0ae1d3 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -16071,20 +16071,6 @@ final: prev: { meta.hydraPlatforms = [ ]; }; - rust-tools-nvim = buildVimPlugin { - pname = "rust-tools.nvim"; - version = "0-unstable-2024-01-03"; - src = fetchFromGitHub { - owner = "simrat39"; - repo = "rust-tools.nvim"; - rev = "676187908a1ce35ffcd727c654ed68d851299d3e"; - hash = "sha256-kFane5ze7VDiOzF7jdmXkr50XQsNvdb+a9HQtybEVE0="; - }; - meta.homepage = "https://github.com/simrat39/rust-tools.nvim/"; - meta.license = getLicenseFromSpdxId "MIT"; - meta.hydraPlatforms = [ ]; - }; - rust-vim = buildVimPlugin { pname = "rust.vim"; version = "0-unstable-2022-11-27"; diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index 0d65ee512787..9094a4d71f80 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -4144,10 +4144,6 @@ assertNoAdditions { }; }); - rust-tools-nvim = super.rust-tools-nvim.overrideAttrs { - dependencies = [ self.nvim-lspconfig ]; - }; - rustaceanvim = super.rustaceanvim.overrideAttrs { checkInputs = [ # Optional integration diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index 772ea9f1a312..3099681796ce 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -1146,7 +1146,6 @@ https://github.com/keith/rspec.vim/,, https://github.com/ccarpita/rtorrent-syntax-file/,, https://codeberg.org/ssnoer/run.nvim,, https://github.com/TheLazyCat00/runner-nvim/,, -https://github.com/simrat39/rust-tools.nvim/,, https://github.com/rust-lang/rust.vim/,, https://github.com/tris203/rzls.nvim/,, https://github.com/hauleth/sad.vim/,, From 5387b308ea088744a009c561a94a08060cf945da Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 28 Sep 2026 16:03:03 -0500 Subject: [PATCH 2/2] vimPlugins: reject aliases that shadow plugins An alias that shadows a plugin only threw when that attribute was evaluated with aliases enabled. CI evaluates with allowAliases = false, so a shadowing alias passed review and left rust-tools-nvim unevaluable for users. Check the alias names against the plugin set whenever vimPlugins is evaluated, as mpvScripts does, and drop the per-alias check this replaces. --- pkgs/applications/editors/vim/plugins/aliases.nix | 10 +--------- pkgs/applications/editors/vim/plugins/default.nix | 9 ++++++++- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/editors/vim/plugins/aliases.nix b/pkgs/applications/editors/vim/plugins/aliases.nix index 6f89bd8b1ac7..33f4a01ef76d 100644 --- a/pkgs/applications/editors/vim/plugins/aliases.nix +++ b/pkgs/applications/editors/vim/plugins/aliases.nix @@ -17,16 +17,8 @@ let # sets from building on Hydra. removeDistribute = alias: if lib.isDerivation alias then lib.dontDistribute alias else alias; - # Make sure that we are not shadowing something from - # all-packages.nix. - checkInPkgs = - n: alias: if builtins.hasAttr n prev then throw "Alias ${n} is still in vim-plugins" else alias; - mapAliases = - aliases: - lib.mapAttrs ( - n: alias: removeDistribute (removeRecurseForDerivations (checkInPkgs n alias)) - ) aliases; + aliases: lib.mapAttrs (_: alias: removeDistribute (removeRecurseForDerivations alias)) aliases; deprecations = lib.mapAttrs ( old: info: diff --git a/pkgs/applications/editors/vim/plugins/default.nix b/pkgs/applications/editors/vim/plugins/default.nix index 9630944dc0d3..7ace8d226c77 100644 --- a/pkgs/applications/editors/vim/plugins/default.nix +++ b/pkgs/applications/editors/vim/plugins/default.nix @@ -55,7 +55,14 @@ let inherit llvmPackages; }; - aliases = if config.allowAliases then (import ./aliases.nix lib) else final: prev: { }; + aliases = + final: prev: + let + defined = import ./aliases.nix lib final prev; + shadowed = builtins.attrNames (builtins.intersectAttrs prev defined); + in + assert lib.assertMsg (shadowed == [ ]) "vimPlugins aliases shadow plugins: ${toString shadowed}"; + lib.optionalAttrs config.allowAliases defined; in lib.pipe initialPackages [ (extends plugins)