From d6cdbf36b2e1098f066b97b485134cc6634ce93a Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 7 Apr 2025 18:36:51 +0200 Subject: [PATCH] modules/dependencies: add ripgrep --- modules/dependencies.nix | 1 + plugins/by-name/spectre/default.nix | 41 ++++++++----------- .../telescope/extensions/live-greps-args.nix | 25 ++++++----- plugins/by-name/todo-comments/default.nix | 15 +++---- .../plugins/by-name/spectre/default.nix | 1 - .../by-name/telescope/live-grep-args.nix | 24 +++++------ .../plugins/by-name/todo-comments/default.nix | 6 +-- 7 files changed, 54 insertions(+), 59 deletions(-) diff --git a/modules/dependencies.nix b/modules/dependencies.nix index 43f4f245..9526ee39 100644 --- a/modules/dependencies.nix +++ b/modules/dependencies.nix @@ -27,6 +27,7 @@ let default = "nodejs"; example = "pkgs.nodejs_22"; }; + ripgrep.default = "ripgrep"; texpresso.default = "texpresso"; tinymist.default = "tinymist"; tree-sitter.default = "tree-sitter"; diff --git a/plugins/by-name/spectre/default.nix b/plugins/by-name/spectre/default.nix index 7bd14caf..0f3363c3 100644 --- a/plugins/by-name/spectre/default.nix +++ b/plugins/by-name/spectre/default.nix @@ -17,11 +17,19 @@ lib.nixvim.plugins.mkNeovimPlugin { You may want to set the package for your find/replace tool(s) like shown below: ```nix - plugins.spectre.findPackage = pkgs.rg; plugins.spectre.replacePackage = pkgs.gnused; ``` ''; + imports = [ + # TODO: added 2025-04-07, remove after 25.05 + (lib.nixvim.mkRemovedPackageOptionModule { + plugin = "spectre"; + packageName = "ripgrep"; + oldPackageName = "find"; + }) + ]; + settingsOptions = let mkEngineOption = @@ -231,11 +239,6 @@ lib.nixvim.plugins.mkNeovimPlugin { let defaults = config.plugins.spectre.settings.default; - # NOTE: changes here should also be reflected in the `defaultText` below - findPackages = { - rg = pkgs.ripgrep; - }; - # NOTE: changes here should also be reflected in the `defaultText` below replacePackages = { sed = pkgs.gnused; @@ -243,24 +246,6 @@ lib.nixvim.plugins.mkNeovimPlugin { }; in { - findPackage = lib.mkOption { - type = with lib.types; nullOr package; - default = findPackages.${toString defaults.find.cmd} or null; - defaultText = literalMD '' - Based on the value defined in `config.plugins.spectre.settings.default.find.cmd`, - if the value defined there is a key in the attrset below, then the corresponding value is used. Otherwise the default will be `null`. - - ```nix - { - rg = pkgs.ripgrep; - } - ``` - ''; - description = '' - The package to use for the find command. - ''; - }; - replacePackage = lib.mkOption { type = with lib.types; nullOr package; default = replacePackages.${toString defaults.replace.cmd} or null; @@ -282,8 +267,14 @@ lib.nixvim.plugins.mkNeovimPlugin { }; extraConfig = cfg: { + dependencies = + let + defaults = cfg.settings.default; + in + { + ripgrep.enable = lib.mkIf (defaults.find.cmd == "rg") (lib.mkDefault true); + }; extraPackages = [ - cfg.findPackage cfg.replacePackage ]; }; diff --git a/plugins/by-name/telescope/extensions/live-greps-args.nix b/plugins/by-name/telescope/extensions/live-greps-args.nix index 5ba578e2..7bbc0258 100644 --- a/plugins/by-name/telescope/extensions/live-greps-args.nix +++ b/plugins/by-name/telescope/extensions/live-greps-args.nix @@ -1,6 +1,5 @@ { lib, - pkgs, ... }: let @@ -13,6 +12,19 @@ mkExtension { extensionName = "live_grep_args"; package = "telescope-live-grep-args-nvim"; + imports = [ + # TODO: added 2025-04-07, remove after 25.05 + (lib.nixvim.mkRemovedPackageOptionModule { + plugin = [ + "telescope" + "extensions" + "live-grep-args" + ]; + packageName = "ripgrep"; + oldPackageName = "grep"; + }) + ]; + settingsOptions = { auto_quoting = defaultNullOpts.mkBool true '' Enable or disable auto quoting of searches. @@ -56,14 +68,7 @@ mkExtension { theme = "dropdown"; }; - extraOptions = { - grepPackage = lib.mkPackageOption pkgs "ripgrep" { - nullable = true; - example = "pkgs.gnugrep"; - }; - }; - - extraConfig = cfg: { - extraPackages = [ cfg.grepPackage ]; + extraConfig = { + dependencies.ripgrep.enable = lib.mkDefault true; }; } diff --git a/plugins/by-name/todo-comments/default.nix b/plugins/by-name/todo-comments/default.nix index f25c50c0..d4e5738e 100644 --- a/plugins/by-name/todo-comments/default.nix +++ b/plugins/by-name/todo-comments/default.nix @@ -1,7 +1,6 @@ { lib, config, - pkgs, ... }: with lib; @@ -22,13 +21,19 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.khaneliman ]; - # TODO: Added 2023-11-06, remove after 24.11 imports = [ + # TODO: Added 2023-11-06, remove after 24.11 (mkRemovedOptionModule [ "plugins" "todo-comments" "keymapsSilent" ] "Use `plugins.todo-comments.keymaps..options.silent`.") + + # TODO: added 2025-04-07, remove after 25.05 + (lib.nixvim.mkRemovedPackageOptionModule { + plugin = "todo-comments"; + packageName = "ripgrep"; + }) ]; # TODO: Added 2024-08-16, remove after 24.11 @@ -407,10 +412,6 @@ lib.nixvim.plugins.mkNeovimPlugin { todoTrouble = "TodoTrouble"; todoTelescope = "TodoTelescope"; }; - - ripgrepPackage = lib.mkPackageOption pkgs "ripgrep" { - nullable = true; - }; }; extraConfig = cfg: { @@ -431,7 +432,7 @@ lib.nixvim.plugins.mkNeovimPlugin { } ]; - extraPackages = [ cfg.ripgrepPackage ]; + dependencies.ripgrep.enable = lib.mkDefault true; keymaps = lib.pipe cfg.keymaps [ (filterAttrs (n: keymap: keymap != null && keymap.key != null)) diff --git a/tests/test-sources/plugins/by-name/spectre/default.nix b/tests/test-sources/plugins/by-name/spectre/default.nix index ef702b2f..d64ff07a 100644 --- a/tests/test-sources/plugins/by-name/spectre/default.nix +++ b/tests/test-sources/plugins/by-name/spectre/default.nix @@ -8,7 +8,6 @@ plugins.spectre = { enable = true; - findPackage = pkgs.ripgrep; replacePackage = pkgs.gnused; }; }; diff --git a/tests/test-sources/plugins/by-name/telescope/live-grep-args.nix b/tests/test-sources/plugins/by-name/telescope/live-grep-args.nix index 332ceef6..c09b9717 100644 --- a/tests/test-sources/plugins/by-name/telescope/live-grep-args.nix +++ b/tests/test-sources/plugins/by-name/telescope/live-grep-args.nix @@ -49,26 +49,26 @@ }; custom-packages = { - plugins.telescope = { - enable = true; - - extensions.live-grep-args = { + plugins = { + telescope = { enable = true; - grepPackage = pkgs.gnugrep; + + extensions.live-grep-args.enable = true; }; + web-devicons.enable = true; }; - plugins.web-devicons.enable = true; + dependencies.ripgrep.package = pkgs.gnugrep; }; no-packages = { - plugins.telescope = { - enable = true; - - extensions.live-grep-args = { + plugins = { + telescope = { enable = true; - grepPackage = null; + + extensions.live-grep-args.enable = true; }; + web-devicons.enable = false; }; - plugins.web-devicons.enable = false; + dependencies.ripgrep.enable = false; }; } diff --git a/tests/test-sources/plugins/by-name/todo-comments/default.nix b/tests/test-sources/plugins/by-name/todo-comments/default.nix index d02c9be4..3be84c5d 100644 --- a/tests/test-sources/plugins/by-name/todo-comments/default.nix +++ b/tests/test-sources/plugins/by-name/todo-comments/default.nix @@ -191,11 +191,9 @@ }; without-ripgrep = { - plugins.todo-comments = { - enable = true; + plugins.todo-comments.enable = true; - ripgrepPackage = null; - }; + dependencies.ripgrep.enable = false; }; highlight-pattern-list = {