diff --git a/plugins/deprecation.nix b/plugins/deprecation.nix index 8a53650a..d5854e17 100644 --- a/plugins/deprecation.nix +++ b/plugins/deprecation.nix @@ -1,5 +1,12 @@ { lib, ... }: let + deprecated = { + # TODO: added 10-23-2024, move to removed after 24.11 + "rust-tools" = '' + The `rust-tools` project has been abandoned. + It is recommended to use `rustaceanvim` instead. + ''; + }; removed = { # Added 2023-08-29 treesitter-playground = '' @@ -64,22 +71,30 @@ in Please use `plugins.web-devicons` or `plugins.mini.modules.icons` with `plugins.mini.mockDevIcons` instead. '' ) iconsPackagePlugins - # Show a warning when web-devicons is auto-enabled ++ [ ( { config, options, ... }: { - config = lib.mkIf (options.plugins.web-devicons.enable.highestPrio == 1490) { - warnings = [ - '' - Nixvim: `plugins.web-devicons` was enabled automatically because the following plugins are enabled. - This behaviour is deprecated. Please explicitly define `plugins.web-devicons.enable` or alternatively - enable `plugins.mini.enable` with `plugins.mini.modules.icons` and `plugins.mini.mockDevIcons`. - ${lib.concatMapStringsSep "\n" (name: "plugins.${name}") ( - builtins.filter (name: config.plugins.${name}.enable) iconsPackagePlugins - )} - '' - ]; + config = { + warnings = + lib.optionals (options.plugins.web-devicons.enable.highestPrio == 1490) [ + '' + Nixvim: `plugins.web-devicons` was enabled automatically because the following plugins are enabled. + This behaviour is deprecated. Please explicitly define `plugins.web-devicons.enable` or alternatively + enable `plugins.mini.enable` with `plugins.mini.modules.icons` and `plugins.mini.mockDevIcons`. + ${lib.concatMapStringsSep "\n" (name: "plugins.${name}") ( + builtins.filter (name: config.plugins.${name}.enable) iconsPackagePlugins + )} + '' + ] + ++ lib.foldlAttrs ( + warnings: plugin: msg: + warnings + ++ lib.optional config.plugins.${plugin}.enable '' + Nixvim Warning: The `${plugin}` plugin has been deprecated. + ${msg} + '' + ) [ ] deprecated; }; } ) diff --git a/tests/test-sources/plugins/by-name/rust-tools/default.nix b/tests/test-sources/plugins/by-name/rust-tools/default.nix index 8b484ea3..77245d99 100644 --- a/tests/test-sources/plugins/by-name/rust-tools/default.nix +++ b/tests/test-sources/plugins/by-name/rust-tools/default.nix @@ -1,9 +1,13 @@ { empty = { + # Plugin deprecated + test.checkWarnings = false; plugins.rust-tools.enable = true; }; defaults = { + # Plugin deprecated + test.checkWarnings = false; plugins.rust-tools = { enable = true; executor = "termopen"; @@ -73,6 +77,8 @@ }; rust-analyzer-options = { + # Plugin deprecated + test.checkWarnings = false; plugins.rust-tools = { enable = true; server = {