plugins: use mk{Neovim,Vim}Plugin's dependencies parameter

This commit is contained in:
Gaetan Lepage 2025-04-27 09:53:12 +02:00
parent b66559d8ef
commit 1a64636839
49 changed files with 147 additions and 207 deletions

View file

@ -11,6 +11,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ maintainers.GaetanLepage ]; maintainers = [ maintainers.GaetanLepage ];
dependencies = [ "curl" ];
# TODO: added 2025-04-06, remove after 25.05 # TODO: added 2025-04-06, remove after 25.05
imports = [ imports = [
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -19,8 +21,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
extraConfig = cfg: { dependencies.curl.enable = lib.mkDefault true; };
settingsOptions = { settingsOptions = {
api_key_cmd = helpers.defaultNullOpts.mkStr null '' api_key_cmd = helpers.defaultNullOpts.mkStr null ''
The path and arguments to an executable that returns the API key via stdout. The path and arguments to an executable that returns the API key via stdout.

View file

@ -13,6 +13,8 @@ lib.nixvim.plugins.mkVimPlugin {
maintainers = [ lib.maintainers.alisonjenkins ]; maintainers = [ lib.maintainers.alisonjenkins ];
dependencies = [ "git" ];
imports = [ imports = [
# TODO: added 2025-04-06, remove after 25.05 # TODO: added 2025-04-06, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -55,8 +57,4 @@ lib.nixvim.plugins.mkVimPlugin {
Minimum height of a status window. Minimum height of a status window.
''; '';
}; };
extraConfig = cfg: {
dependencies.git.enable = lib.mkDefault true;
};
} }

View file

@ -8,6 +8,8 @@ lib.nixvim.plugins.mkVimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
dependencies = [ "cornelis" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -16,10 +18,6 @@ lib.nixvim.plugins.mkVimPlugin {
}) })
]; ];
extraConfig = {
dependencies.cornelis.enable = lib.mkDefault true;
};
settingsOptions = { settingsOptions = {
use_global_binary = defaultNullOpts.mkFlagInt 0 '' use_global_binary = defaultNullOpts.mkFlagInt 0 ''
Whether to use global binary instead of stack. Whether to use global binary instead of stack.

View file

@ -13,6 +13,8 @@ lib.nixvim.plugins.mkVimPlugin {
maintainers = [ lib.maintainers.alisonjenkins ]; maintainers = [ lib.maintainers.alisonjenkins ];
dependencies = [ "direnv" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -43,8 +45,4 @@ lib.nixvim.plugins.mkVimPlugin {
Stop echoing output from Direnv command. Stop echoing output from Direnv command.
''; '';
}; };
extraConfig = {
dependencies.direnv.enable = lib.mkDefault true;
};
} }

View file

@ -17,6 +17,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
setup = ":setup"; setup = ":setup";
dependencies = [ "distant" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -25,10 +27,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
extraConfig = {
dependencies.distant.enable = lib.mkDefault true;
};
settingsOptions = { settingsOptions = {
buffer = { buffer = {
watch = { watch = {

View file

@ -10,6 +10,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.khaneliman ]; maintainers = [ lib.maintainers.khaneliman ];
dependencies = [ "flutter" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -19,8 +21,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
]; ];
extraConfig = cfg: { extraConfig = cfg: {
dependencies.flutter.enable = lib.mkDefault true;
warnings = lib.nixvim.mkWarnings "plugins.flutter-tools" { warnings = lib.nixvim.mkWarnings "plugins.flutter-tools" {
when = when =
(cfg.settings ? debugger.enable) (cfg.settings ? debugger.enable)

View file

@ -9,6 +9,8 @@ lib.nixvim.plugins.mkVimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
dependencies = [ "git" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -18,8 +20,4 @@ lib.nixvim.plugins.mkVimPlugin {
]; ];
# In typical tpope fashion, this plugin has no config options # In typical tpope fashion, this plugin has no config options
extraConfig = {
dependencies.git.enable = lib.mkDefault true;
};
} }

View file

@ -36,6 +36,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
inherit settingsOptions settingsExample; inherit settingsOptions settingsExample;
dependencies = [ "fzf" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -130,8 +132,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
enable = lib.mkOverride 1490 true; enable = lib.mkOverride 1490 true;
}; };
dependencies.fzf.enable = lib.mkDefault true;
plugins.fzf-lua.settings.__unkeyed_profile = cfg.profile; plugins.fzf-lua.settings.__unkeyed_profile = cfg.profile;
keymaps = mapAttrsToList ( keymaps = mapAttrsToList (

View file

@ -10,6 +10,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ maintainers.GaetanLepage ]; maintainers = [ maintainers.GaetanLepage ];
dependencies = [ "git" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -18,10 +20,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
extraConfig = {
dependencies.git.enable = lib.mkDefault true;
};
settingsOptions = { settingsOptions = {
default_mappings = default_mappings =
helpers.defaultNullOpts.mkNullable (with types; either bool (attrsOf str)) true helpers.defaultNullOpts.mkNullable (with types; either bool (attrsOf str)) true

View file

@ -13,6 +13,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.khaneliman ]; maintainers = [ lib.maintainers.khaneliman ];
dependencies = [ "git" ];
# TODO: added 2025-04-06, remove after 25.05 # TODO: added 2025-04-06, remove after 25.05
imports = [ imports = [
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -70,8 +72,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
''; '';
}; };
dependencies.git.enable = lib.mkDefault true;
plugins.telescope.enabledExtensions = lib.mkIf cfg.enableTelescope [ "git_worktree" ]; plugins.telescope.enabledExtensions = lib.mkIf cfg.enableTelescope [ "git_worktree" ];
globals.git_worktree = cfg.settings; globals.git_worktree = cfg.settings;

View file

@ -33,6 +33,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
dependencies = [ "git" ];
settingsOptions = { settingsOptions = {
enabled = defaultNullOpts.mkBool true '' enabled = defaultNullOpts.mkBool true ''
Enables the plugin on Neovim startup. Enables the plugin on Neovim startup.
@ -132,8 +134,4 @@ lib.nixvim.plugins.mkNeovimPlugin {
virtual_text_column = 80; virtual_text_column = 80;
use_blame_commit_file_urls = true; use_blame_commit_file_urls = true;
}; };
extraConfig = {
dependencies.git.enable = lib.mkDefault true;
};
} }

View file

@ -43,6 +43,8 @@ lib.nixvim.plugins.mkVimPlugin {
}) })
]; ];
dependencies = [ "git" ];
extraOptions = { extraOptions = {
recommendedSettings = lib.mkOption { recommendedSettings = lib.mkOption {
type = types.bool; type = types.bool;
@ -63,8 +65,6 @@ lib.nixvim.plugins.mkVimPlugin {
foldtext = "gitgutter#fold#foldtext"; foldtext = "gitgutter#fold#foldtext";
}; };
dependencies.git.enable = lib.mkDefault true;
extraPackages = [ extraPackages = [
cfg.grepPackage cfg.grepPackage
]; ];

View file

@ -13,6 +13,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
dependencies = [ "nodejs" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -22,10 +24,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
extraConfig = {
dependencies.nodejs.enable = lib.mkDefault true;
};
settingsOptions = { settingsOptions = {
gitlab_url = defaultNullOpts.mkStr "https://gitlab.com" '' gitlab_url = defaultNullOpts.mkStr "https://gitlab.com" ''
The GitLab instance url to use if not `https://gitlab.com`. The GitLab instance url to use if not `https://gitlab.com`.

View file

@ -14,9 +14,7 @@ lib.nixvim.plugins.mkVimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
extraConfig = { dependencies = [ "git" ];
dependencies.git.enable = lib.mkDefault true;
};
# TODO: Added 2024-12-16; remove after 25.05 # TODO: Added 2024-12-16; remove after 25.05
optionsRenamedToSettings = [ optionsRenamedToSettings = [

View file

@ -1,7 +1,6 @@
{ {
lib, lib,
config, config,
pkgs,
... ...
}: }:
let let
@ -82,6 +81,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
dependencies = [ "git" ];
settingsOptions = import ./settings-options.nix lib; settingsOptions = import ./settings-options.nix lib;
settingsExample = { settingsExample = {
@ -111,7 +112,5 @@ lib.nixvim.plugins.mkNeovimPlugin {
You should maybe enable the `trouble` plugin. You should maybe enable the `trouble` plugin.
''; '';
}; };
dependencies.git.enable = lib.mkDefault true;
}; };
} }

View file

@ -12,6 +12,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.getchoo ]; maintainers = [ lib.maintainers.getchoo ];
dependencies = [ "glow" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -82,8 +84,4 @@ lib.nixvim.plugins.mkNeovimPlugin {
width_ratio = 0.7; width_ratio = 0.7;
height_ratio = 0.7; height_ratio = 0.7;
}; };
extraConfig = {
dependencies.glow.enable = lib.mkDefault true;
};
} }

View file

@ -12,6 +12,8 @@ lib.nixvim.plugins.mkVimPlugin {
maintainers = [ maintainers.GaetanLepage ]; maintainers = [ maintainers.GaetanLepage ];
dependencies = [ "godot" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -29,8 +31,4 @@ lib.nixvim.plugins.mkVimPlugin {
settingsExample = { settingsExample = {
executable = "godot"; executable = "godot";
}; };
extraConfig = {
dependencies.godot.enable = lib.mkDefault true;
};
} }

View file

@ -1,5 +1,6 @@
{ {
lib, lib,
config,
... ...
}: }:
let let
@ -124,12 +125,13 @@ lib.nixvim.plugins.mkNeovimPlugin {
]; ];
}; };
extraConfig = cfg: { # In theory, we could remove that if the user explicitly disables `downloadRemoteImages` for
# In theory, we could remove that if the user explicitly disables `downloadRemoteImages` for # all integrations but shipping `curl` is not too heavy.
# all integrations but shipping `curl` is not too heavy. dependencies = [
dependencies = { "curl"
curl.enable = lib.mkDefault true; {
ueberzug.enable = lib.mkIf (cfg.settings.backend == "ueberzug") (lib.mkDefault true); name = "ueberzug";
}; enable = config.plugins.image.settings.backend == "ueberzug";
}; }
];
} }

View file

@ -14,6 +14,11 @@ lib.nixvim.plugins.mkVimPlugin {
maintainers = [ lib.maintainers.AndresBermeoMarinelli ]; maintainers = [ lib.maintainers.AndresBermeoMarinelli ];
dependencies = [
"git"
"lazygit"
];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -80,12 +85,4 @@ lib.nixvim.plugins.mkVimPlugin {
use_custom_config_file_path = 0; use_custom_config_file_path = 0;
config_file_path = [ ]; config_file_path = [ ];
}; };
extraConfig = cfg: {
dependencies = {
git.enable = lib.mkDefault true;
lazygit.enable = lib.mkDefault true;
};
};
} }

View file

@ -13,6 +13,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.khaneliman ]; maintainers = [ lib.maintainers.khaneliman ];
dependencies = [ "lean" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -184,10 +186,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
}; };
}; };
extraConfig = {
dependencies.lean.enable = lib.mkDefault true;
};
# TODO: Deprecated in 2025-01-31 # TODO: Deprecated in 2025-01-31
inherit (import ./deprecations.nix) deprecateExtraOptions optionsRenamedToSettings; inherit (import ./deprecations.nix) deprecateExtraOptions optionsRenamedToSettings;
} }

View file

@ -35,9 +35,7 @@ mkVimPlugin {
}) })
]; ];
extraConfig = { dependencies = [ "ledger" ];
dependencies.ledger.enable = lib.mkDefault true;
};
settingsOptions = { settingsOptions = {
bin = helpers.mkNullOrStr '' bin = helpers.mkNullOrStr ''

View file

@ -10,6 +10,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
dependencies = [ "llm-ls" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -19,18 +21,14 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
extraConfig = extraConfig = {
let # If not setting this option, llm.nvim will try to download the llm-ls binary from the internet.
llm-ls-dep = config.dependencies.llm-ls; plugins.llm.settings.lsp.bin_path =
in let
{ llm-ls-dep = config.dependencies.llm-ls;
dependencies.llm-ls.enable = lib.mkDefault true; in
lib.mkIf llm-ls-dep.enable (lib.mkDefault (lib.getExe llm-ls-dep.package));
# If not setting this option, llm.nvim will try to download the llm-ls binary from the internet. };
plugins.llm.settings.lsp.bin_path = lib.mkIf llm-ls-dep.enable (
lib.mkDefault (lib.getExe llm-ls-dep.package)
);
};
settingsOptions = import ./settings-options.nix lib; settingsOptions = import ./settings-options.nix lib;

View file

@ -52,6 +52,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
dependencies = [ "git" ];
settingsOptions = settingsOptions =
let let
mkSeparatorsOption = mkSeparatorsOption =
@ -406,8 +408,4 @@ lib.nixvim.plugins.mkNeovimPlugin {
]; ];
}; };
}; };
extraConfig = {
dependencies.git.enable = lib.mkDefault true;
};
} }

View file

@ -84,6 +84,14 @@ lib.nixvim.plugins.mkNeovimPlugin {
"mappings" "mappings"
]; ];
dependencies = [
"git"
{
name = "which";
enable = hasInfix "which" (config.plugins.neogit.settings.commit_view.verify_commit.__raw or "");
}
];
settingsOptions = import ./settings-options.nix { inherit lib helpers; }; settingsOptions = import ./settings-options.nix { inherit lib helpers; };
settingsExample = { settingsExample = {
@ -132,15 +140,5 @@ lib.nixvim.plugins.mkNeovimPlugin {
"fzf-lua" "fzf-lua"
] ]
); );
dependencies = {
git.enable = lib.mkDefault true;
which.enable =
let
autoInstallWhich = hasInfix "which" (cfg.settings.commit_view.verify_commit.__raw or "");
in
lib.mkIf autoInstallWhich (lib.mkDefault true);
};
}; };
} }

View file

@ -3,7 +3,6 @@
helpers, helpers,
pkgs, pkgs,
config, config,
options,
... ...
}: }:
with lib; with lib;

View file

@ -13,6 +13,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.svl ]; maintainers = [ lib.maintainers.svl ];
dependencies = [ "gh" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -178,7 +180,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
extraConfig = extraConfig =
cfg: cfg:
lib.mkMerge [ lib.mkMerge [
{ dependencies.gh.enable = lib.mkDefault true; }
(lib.mkIf (cfg.settings.picker == null || cfg.settings.picker == "telescope") { (lib.mkIf (cfg.settings.picker == null || cfg.settings.picker == "telescope") {
plugins.telescope.enable = lib.mkDefault true; plugins.telescope.enable = lib.mkDefault true;
}) })

View file

@ -17,9 +17,7 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
extraConfig = { dependencies = [ "yq" ];
dependencies.yq.enable = lib.mkDefault true;
};
settingsOptions = import ./settings-options.nix lib; settingsOptions = import ./settings-options.nix lib;

View file

@ -6,9 +6,7 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
extraConfig = { dependencies = [ "ripgrep" ];
dependencies.ripgrep.enable = lib.mkDefault true;
};
settingsExample = lib.literalExpression '' settingsExample = lib.literalExpression ''
{ {

View file

@ -12,6 +12,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
dependencies = [ "git" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -78,8 +80,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
}; };
extraConfig = cfg: { extraConfig = cfg: {
dependencies.git.enable = lib.mkDefault true;
plugins.pckr.luaConfig = { plugins.pckr.luaConfig = {
# Otherwise pckr can't find itself # Otherwise pckr can't find itself
pre = '' pre = ''

View file

@ -25,9 +25,7 @@ lib.nixvim.plugins.mkVimPlugin {
}) })
]; ];
extraConfig = { dependencies = [ "plantuml" ];
dependencies.plantuml.enable = lib.mkDefault true;
};
settingsOptions = { settingsOptions = {
set_makeprg = defaultNullOpts.mkFlagInt 1 '' set_makeprg = defaultNullOpts.mkFlagInt 1 ''

View file

@ -61,6 +61,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
"searchBack" "searchBack"
]; ];
dependencies = [ "curl" ];
settingsOptions = { settingsOptions = {
custom_dynamic_variables = lib.mkOption { custom_dynamic_variables = lib.mkOption {
type = with types; nullOr (maybeRaw (attrsOf strLuaFn)); type = with types; nullOr (maybeRaw (attrsOf strLuaFn));
@ -302,8 +304,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
globals.rest_nvim = cfg.settings; globals.rest_nvim = cfg.settings;
dependencies.curl.enable = lib.mkDefault true;
filetype = lib.mkIf cfg.enableHttpFiletypeAssociation { filetype = lib.mkIf cfg.enableHttpFiletypeAssociation {
extension.http = "http"; extension.http = "http";
}; };

View file

@ -15,6 +15,7 @@ lib.nixvim.plugins.mkNeovimPlugin {
deprecateExtraOptions = true; deprecateExtraOptions = true;
optionsRenamedToSettings = import ./renamed-options.nix; optionsRenamedToSettings = import ./renamed-options.nix;
dependencies = [ "rust-analyzer" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -56,8 +57,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
cfg: cfg:
mkMerge [ mkMerge [
{ {
dependencies.rust-analyzer.enable = lib.mkDefault true;
globals.rustaceanvim = cfg.settings; globals.rustaceanvim = cfg.settings;
assertions = lib.nixvim.mkAssertions "plugins.rustaceanvim" { assertions = lib.nixvim.mkAssertions "plugins.rustaceanvim" {

View file

@ -14,6 +14,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
dependencies = [ "nodejs" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -24,8 +26,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
]; ];
extraConfig = { extraConfig = {
dependencies.nodejs.enable = lib.mkDefault true;
plugins.sg.settings.node_executable = lib.mkIf config.dependencies.nodejs.enable ( plugins.sg.settings.node_executable = lib.mkIf config.dependencies.nodejs.enable (
lib.mkDefault (lib.getExe config.dependencies.nodejs.package) lib.mkDefault (lib.getExe config.dependencies.nodejs.package)
); );

View file

@ -1,5 +1,6 @@
{ {
lib, lib,
config,
helpers, helpers,
... ...
}: }:
@ -26,6 +27,25 @@ lib.nixvim.plugins.mkNeovimPlugin {
'') '')
]; ];
dependencies =
let
defaults = config.plugins.spectre.settings.default;
in
[
{
name = "ripgrep";
enable = defaults.find.cmd == "rg";
}
{
name = "sed";
enable = defaults.replace.cmd == "sed";
}
{
name = "sd";
enable = defaults.replace.cmd == "sd";
}
];
settingsOptions = settingsOptions =
let let
mkEngineOption = mkEngineOption =
@ -230,16 +250,4 @@ lib.nixvim.plugins.mkNeovimPlugin {
}; };
}; };
}; };
extraConfig = cfg: {
dependencies =
let
defaults = cfg.settings.default;
in
{
ripgrep.enable = lib.mkIf (defaults.find.cmd == "rg") (lib.mkDefault true);
sed.enable = lib.mkIf (defaults.replace.cmd == "sed") (lib.mkDefault true);
sd.enable = lib.mkIf (defaults.replace.cmd == "sd") (lib.mkDefault true);
};
};
} }

View file

@ -7,15 +7,13 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.PoCo ]; maintainers = [ lib.maintainers.PoCo ];
dependencies = [ "curl" ];
# Register nvim-cmp association # Register nvim-cmp association
imports = [ imports = [
{ cmpSourcePlugins.supermaven = "supermaven"; } { cmpSourcePlugins.supermaven = "supermaven"; }
]; ];
extraConfig = {
dependencies.curl.enable = lib.mkDefault true;
};
settingsExample = lib.literalExpression '' settingsExample = lib.literalExpression ''
{ {
keymaps = { keymaps = {

View file

@ -19,6 +19,8 @@ lib.nixvim.plugins.mkVimPlugin {
}) })
]; ];
dependencies = [ "ctags" ];
settingsExample = { settingsExample = {
position = "right"; position = "right";
autoclose = false; autoclose = false;
@ -35,8 +37,4 @@ lib.nixvim.plugins.mkVimPlugin {
private = "󰛑 "; private = "󰛑 ";
}; };
}; };
extraConfig = {
dependencies.ctags.enable = lib.mkDefault true;
};
} }

View file

@ -1,8 +1,6 @@
{ {
lib, lib,
config, config,
pkgs,
options,
... ...
}: }:
with lib; with lib;
@ -45,6 +43,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
dependencies = [ "bat" ];
extraOptions = { extraOptions = {
keymaps = mkOption { keymaps = mkOption {
type = type =
@ -111,8 +111,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
let $BAT_THEME = '${cfg.highlightTheme}' let $BAT_THEME = '${cfg.highlightTheme}'
''; '';
dependencies.bat.enable = lib.mkDefault true;
keymaps = mapAttrsToList ( keymaps = mapAttrsToList (
key: mapping: key: mapping:
let let

View file

@ -12,6 +12,8 @@ mkExtension {
extensionName = "live_grep_args"; extensionName = "live_grep_args";
package = "telescope-live-grep-args-nvim"; package = "telescope-live-grep-args-nvim";
dependencies = [ "ripgrep" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -67,8 +69,4 @@ mkExtension {
}; };
theme = "dropdown"; theme = "dropdown";
}; };
extraConfig = {
dependencies.ripgrep.enable = lib.mkDefault true;
};
} }

View file

@ -12,6 +12,8 @@ lib.nixvim.plugins.mkVimPlugin {
maintainers = [ maintainers.nickhu ]; maintainers = [ maintainers.nickhu ];
dependencies = [ "texpresso" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -19,8 +21,4 @@ lib.nixvim.plugins.mkVimPlugin {
packageName = "texpresso"; packageName = "texpresso";
}) })
]; ];
extraConfig = {
dependencies.texpresso.enable = lib.mkDefault true;
};
} }

View file

@ -9,12 +9,10 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
extraConfig = cfg: { dependencies = [
dependencies = { "curl"
curl.enable = lib.mkDefault true; "git"
git.enable = lib.mkDefault true; ];
};
};
settingsExample = { settingsExample = {
stage.moveToNextHunkOnStagingToggle = true; stage.moveToNextHunkOnStagingToggle = true;

View file

@ -21,6 +21,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.khaneliman ]; maintainers = [ lib.maintainers.khaneliman ];
dependencies = [ "ripgrep" ];
imports = [ imports = [
# TODO: Added 2023-11-06, remove after 24.11 # TODO: Added 2023-11-06, remove after 24.11
(mkRemovedOptionModule [ (mkRemovedOptionModule [
@ -432,8 +434,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
} }
]; ];
dependencies.ripgrep.enable = lib.mkDefault true;
keymaps = lib.pipe cfg.keymaps [ keymaps = lib.pipe cfg.keymaps [
(filterAttrs (n: keymap: keymap != null && keymap.key != null)) (filterAttrs (n: keymap: keymap != null && keymap.key != null))
(mapAttrsToList ( (mapAttrsToList (

View file

@ -253,6 +253,11 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
dependencies = lib.map (name: {
inherit name;
enable = !config.plugins.treesitter.nixGrammars;
}) buildGrammarDeps;
settingsOptions = { settingsOptions = {
auto_install = helpers.defaultNullOpts.mkBool false '' auto_install = helpers.defaultNullOpts.mkBool false ''
Whether to automatically install missing parsers when entering a buffer. Whether to automatically install missing parsers when entering a buffer.
@ -456,13 +461,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
pkg: pkg.withPlugins (_: cfg.grammarPackages) pkg: pkg.withPlugins (_: cfg.grammarPackages)
); );
# These deps are required to build grammars when not using `nixGrammars`:
dependencies = lib.mkIf (!cfg.nixGrammars) (
lib.genAttrs buildGrammarDeps (_: {
enable = lib.mkDefault true;
})
);
warnings = lib.nixvim.mkWarnings "plugins.treesitter" ( warnings = lib.nixvim.mkWarnings "plugins.treesitter" (
lib.map (packageName: { lib.map (packageName: {
when = !cfg.nixGrammars && !config.dependencies.${packageName}.enable; when = !cfg.nixGrammars && !config.dependencies.${packageName}.enable;

View file

@ -22,12 +22,12 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
extraConfig = cfg: { dependencies = [
dependencies = { "tinymist"
tinymist.enable = lib.mkDefault true; "websocat"
websocat.enable = lib.mkDefault true; ];
};
extraConfig = cfg: {
plugins.typst-preview.settings = { plugins.typst-preview.settings = {
# Disable automatic downloading of binary dependencies # Disable automatic downloading of binary dependencies
dependencies_bin = { dependencies_bin = {

View file

@ -27,6 +27,8 @@ lib.nixvim.plugins.mkVimPlugin {
}) })
]; ];
dependencies = [ "typst" ];
extraOptions = { extraOptions = {
keymaps = { keymaps = {
silent = mkOption { silent = mkOption {
@ -40,8 +42,6 @@ lib.nixvim.plugins.mkVimPlugin {
}; };
extraConfig = cfg: { extraConfig = cfg: {
dependencies.typst.enable = lib.mkDefault true;
keymaps = keymaps =
with cfg.keymaps; with cfg.keymaps;
helpers.keymaps.mkKeymaps helpers.keymaps.mkKeymaps

View file

@ -5,6 +5,8 @@ lib.nixvim.plugins.mkVimPlugin {
maintainers = [ lib.maintainers.GaetanLepage ]; maintainers = [ lib.maintainers.GaetanLepage ];
dependencies = [ "tmux" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -13,10 +15,6 @@ lib.nixvim.plugins.mkVimPlugin {
}) })
]; ];
extraConfig = {
dependencies.tmux.enable = lib.mkDefault true;
};
settingsOptions = import ./settings-options.nix lib; settingsOptions = import ./settings-options.nix lib;
settingsExample = { settingsExample = {

View file

@ -12,6 +12,8 @@ lib.nixvim.plugins.neovim.mkNeovimPlugin {
maintainers = [ lib.maintainers.khaneliman ]; maintainers = [ lib.maintainers.khaneliman ];
dependencies = [ "wezterm" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -29,8 +31,4 @@ lib.nixvim.plugins.neovim.mkNeovimPlugin {
settingsExample = { settingsExample = {
create_commands = false; create_commands = false;
}; };
extraConfig = {
dependencies.wezterm.enable = lib.mkDefault true;
};
} }

View file

@ -18,6 +18,14 @@ lib.nixvim.plugins.mkNeovimPlugin {
You are free to configure `dependencies.*.enable` and `dependencies.*.package` to disable or customize this behavior, respectively. You are free to configure `dependencies.*.enable` and `dependencies.*.package` to disable or customize this behavior, respectively.
''; '';
dependencies = [
"curl"
"gzip"
"coreutils"
"util-linux"
"codeium"
];
imports = [ imports = [
# Register nvim-cmp association # Register nvim-cmp association
{ cmpSourcePlugins.codeium = "windsurf-nvim"; } { cmpSourcePlugins.codeium = "windsurf-nvim"; }
@ -26,19 +34,4 @@ lib.nixvim.plugins.mkNeovimPlugin {
settingsExample = { settingsExample = {
enable_chat = true; enable_chat = true;
}; };
extraConfig = {
dependencies =
lib.genAttrs
[
"curl"
"gzip"
"coreutils"
"util-linux"
"codeium"
]
(_: {
enable = lib.mkDefault true;
});
};
} }

View file

@ -21,6 +21,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
See the [upstream docs](https://github.com/mikavilpas/yazi.nvim?tab=readme-ov-file#%EF%B8%8F-keybindings) for details. See the [upstream docs](https://github.com/mikavilpas/yazi.nvim?tab=readme-ov-file#%EF%B8%8F-keybindings) for details.
''; '';
dependencies = [ "yazi" ];
imports = [ imports = [
# TODO: added 2025-04-07, remove after 25.05 # TODO: added 2025-04-07, remove after 25.05
(lib.nixvim.mkRemovedPackageOptionModule { (lib.nixvim.mkRemovedPackageOptionModule {
@ -29,10 +31,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
extraConfig = {
dependencies.yazi.enable = lib.mkDefault true;
};
settingsOptions = { settingsOptions = {
log_level = defaultNullOpts.mkLogLevel' { log_level = defaultNullOpts.mkLogLevel' {
pluginDefault = "off"; pluginDefault = "off";

View file

@ -38,6 +38,8 @@ lib.nixvim.plugins.mkNeovimPlugin {
}) })
]; ];
dependencies = [ "zk" ];
settingsOptions = { settingsOptions = {
picker = picker =
helpers.defaultNullOpts.mkEnumFirstDefault helpers.defaultNullOpts.mkEnumFirstDefault
@ -115,8 +117,6 @@ lib.nixvim.plugins.mkNeovimPlugin {
}; };
extraConfig = cfg: { extraConfig = cfg: {
dependencies.zk.enable = lib.mkDefault true;
warnings = lib.nixvim.mkWarnings "plugins.zk" ( warnings = lib.nixvim.mkWarnings "plugins.zk" (
mapAttrsToList mapAttrsToList
(picker: pluginName: { (picker: pluginName: {