{ 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 = '' The `treesitter-playground` plugin has been deprecated since the functionality is included in Neovim. Use: - `:Inspect` to show the highlight groups under the cursor - `:InspectTree` to show the parsed syntax tree ("TSPlayground") - `:PreviewQuery` to open the Query Editor (Nvim 0.10+) ''; }; renamed = { # Added 2024-09-17 surround = "vim-surround"; }; # Added 2024-09-21; remove after 24.11 # `iconsPackage` options were briefly available in the following plugins for ~3 weeks iconsPackagePlugins = [ "telescope" "lspsaga" "nvim-tree" "neo-tree" "trouble" "alpha" "diffview" "fzf-lua" "bufferline" "barbar" "chadtree" ]; in { imports = (lib.mapAttrsToList ( name: lib.mkRemovedOptionModule [ "plugins" name ] ) removed) ++ (lib.mapAttrsToList ( old: new: lib.mkRenamedOptionModule [ "plugins" old ] [ "plugins" new ] ) renamed) ++ builtins.map ( name: lib.mkRemovedOptionModule [ "plugins" name "iconsPackage" ] '' Please use `plugins.web-devicons` or `plugins.mini.modules.icons` with `plugins.mini.mockDevIcons` instead. '' ) iconsPackagePlugins ++ [ ( { config, options, ... }: { 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; }; } ) ]; }