From 1a64636839aae0257af26dd7432bff0fb1e5e3e7 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 27 Apr 2025 09:53:12 +0200 Subject: [PATCH] plugins: use mk{Neovim,Vim}Plugin's dependencies parameter --- plugins/by-name/chatgpt/default.nix | 4 +-- plugins/by-name/committia/default.nix | 6 ++-- plugins/by-name/cornelis/default.nix | 6 ++-- plugins/by-name/direnv/default.nix | 6 ++-- plugins/by-name/distant/default.nix | 6 ++-- plugins/by-name/flutter-tools/default.nix | 4 +-- plugins/by-name/fugitive/default.nix | 6 ++-- plugins/by-name/fzf-lua/default.nix | 4 +-- plugins/by-name/git-conflict/default.nix | 6 ++-- plugins/by-name/git-worktree/default.nix | 4 +-- plugins/by-name/gitblame/default.nix | 6 ++-- plugins/by-name/gitgutter/default.nix | 4 +-- plugins/by-name/gitlab/default.nix | 6 ++-- plugins/by-name/gitmessenger/default.nix | 4 +-- plugins/by-name/gitsigns/default.nix | 5 ++- plugins/by-name/glow/default.nix | 6 ++-- plugins/by-name/godot/default.nix | 6 ++-- plugins/by-name/image/default.nix | 18 ++++++----- plugins/by-name/lazygit/default.nix | 13 +++----- plugins/by-name/lean/default.nix | 6 ++-- plugins/by-name/ledger/default.nix | 4 +-- plugins/by-name/llm/default.nix | 22 ++++++------- plugins/by-name/lualine/default.nix | 6 ++-- plugins/by-name/neogit/default.nix | 18 +++++------ plugins/by-name/nvim-tree/default.nix | 1 - plugins/by-name/octo/default.nix | 3 +- plugins/by-name/papis/default.nix | 4 +-- plugins/by-name/parrot/default.nix | 4 +-- plugins/by-name/pckr/default.nix | 4 +-- plugins/by-name/plantuml-syntax/default.nix | 4 +-- plugins/by-name/rest/default.nix | 4 +-- plugins/by-name/rustaceanvim/default.nix | 3 +- plugins/by-name/sg/default.nix | 4 +-- plugins/by-name/spectre/default.nix | 32 ++++++++++++------- plugins/by-name/supermaven/default.nix | 6 ++-- plugins/by-name/tagbar/default.nix | 6 ++-- plugins/by-name/telescope/default.nix | 6 ++-- .../telescope/extensions/live-greps-args.nix | 6 ++-- plugins/by-name/texpresso/default.nix | 6 ++-- plugins/by-name/tinygit/default.nix | 10 +++--- plugins/by-name/todo-comments/default.nix | 4 +-- plugins/by-name/treesitter/default.nix | 12 +++---- plugins/by-name/typst-preview/default.nix | 10 +++--- plugins/by-name/typst-vim/default.nix | 4 +-- plugins/by-name/vimux/default.nix | 6 ++-- plugins/by-name/wezterm/default.nix | 6 ++-- plugins/by-name/windsurf-nvim/default.nix | 23 +++++-------- plugins/by-name/yazi/default.nix | 6 ++-- plugins/by-name/zk/default.nix | 4 +-- 49 files changed, 147 insertions(+), 207 deletions(-) diff --git a/plugins/by-name/chatgpt/default.nix b/plugins/by-name/chatgpt/default.nix index 8c478f78..e70906bb 100644 --- a/plugins/by-name/chatgpt/default.nix +++ b/plugins/by-name/chatgpt/default.nix @@ -11,6 +11,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ maintainers.GaetanLepage ]; + dependencies = [ "curl" ]; + # TODO: added 2025-04-06, remove after 25.05 imports = [ (lib.nixvim.mkRemovedPackageOptionModule { @@ -19,8 +21,6 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; - extraConfig = cfg: { dependencies.curl.enable = lib.mkDefault true; }; - settingsOptions = { api_key_cmd = helpers.defaultNullOpts.mkStr null '' The path and arguments to an executable that returns the API key via stdout. diff --git a/plugins/by-name/committia/default.nix b/plugins/by-name/committia/default.nix index 4915e8e4..157d67a9 100644 --- a/plugins/by-name/committia/default.nix +++ b/plugins/by-name/committia/default.nix @@ -13,6 +13,8 @@ lib.nixvim.plugins.mkVimPlugin { maintainers = [ lib.maintainers.alisonjenkins ]; + dependencies = [ "git" ]; + imports = [ # TODO: added 2025-04-06, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -55,8 +57,4 @@ lib.nixvim.plugins.mkVimPlugin { Minimum height of a status window. ''; }; - - extraConfig = cfg: { - dependencies.git.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/cornelis/default.nix b/plugins/by-name/cornelis/default.nix index 0925a8dd..fc52dbbd 100644 --- a/plugins/by-name/cornelis/default.nix +++ b/plugins/by-name/cornelis/default.nix @@ -8,6 +8,8 @@ lib.nixvim.plugins.mkVimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; + dependencies = [ "cornelis" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -16,10 +18,6 @@ lib.nixvim.plugins.mkVimPlugin { }) ]; - extraConfig = { - dependencies.cornelis.enable = lib.mkDefault true; - }; - settingsOptions = { use_global_binary = defaultNullOpts.mkFlagInt 0 '' Whether to use global binary instead of stack. diff --git a/plugins/by-name/direnv/default.nix b/plugins/by-name/direnv/default.nix index b55022c6..b73814e2 100644 --- a/plugins/by-name/direnv/default.nix +++ b/plugins/by-name/direnv/default.nix @@ -13,6 +13,8 @@ lib.nixvim.plugins.mkVimPlugin { maintainers = [ lib.maintainers.alisonjenkins ]; + dependencies = [ "direnv" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -43,8 +45,4 @@ lib.nixvim.plugins.mkVimPlugin { Stop echoing output from Direnv command. ''; }; - - extraConfig = { - dependencies.direnv.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/distant/default.nix b/plugins/by-name/distant/default.nix index a5423d35..54fef324 100644 --- a/plugins/by-name/distant/default.nix +++ b/plugins/by-name/distant/default.nix @@ -17,6 +17,8 @@ lib.nixvim.plugins.mkNeovimPlugin { setup = ":setup"; + dependencies = [ "distant" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -25,10 +27,6 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; - extraConfig = { - dependencies.distant.enable = lib.mkDefault true; - }; - settingsOptions = { buffer = { watch = { diff --git a/plugins/by-name/flutter-tools/default.nix b/plugins/by-name/flutter-tools/default.nix index 69328044..133a7e1d 100644 --- a/plugins/by-name/flutter-tools/default.nix +++ b/plugins/by-name/flutter-tools/default.nix @@ -10,6 +10,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.khaneliman ]; + dependencies = [ "flutter" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -19,8 +21,6 @@ lib.nixvim.plugins.mkNeovimPlugin { ]; extraConfig = cfg: { - dependencies.flutter.enable = lib.mkDefault true; - warnings = lib.nixvim.mkWarnings "plugins.flutter-tools" { when = (cfg.settings ? debugger.enable) diff --git a/plugins/by-name/fugitive/default.nix b/plugins/by-name/fugitive/default.nix index 481c04d5..aa6603ce 100644 --- a/plugins/by-name/fugitive/default.nix +++ b/plugins/by-name/fugitive/default.nix @@ -9,6 +9,8 @@ lib.nixvim.plugins.mkVimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; + dependencies = [ "git" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -18,8 +20,4 @@ lib.nixvim.plugins.mkVimPlugin { ]; # In typical tpope fashion, this plugin has no config options - - extraConfig = { - dependencies.git.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/fzf-lua/default.nix b/plugins/by-name/fzf-lua/default.nix index 52744219..f7b158b5 100644 --- a/plugins/by-name/fzf-lua/default.nix +++ b/plugins/by-name/fzf-lua/default.nix @@ -36,6 +36,8 @@ lib.nixvim.plugins.mkNeovimPlugin { inherit settingsOptions settingsExample; + dependencies = [ "fzf" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -130,8 +132,6 @@ lib.nixvim.plugins.mkNeovimPlugin { enable = lib.mkOverride 1490 true; }; - dependencies.fzf.enable = lib.mkDefault true; - plugins.fzf-lua.settings.__unkeyed_profile = cfg.profile; keymaps = mapAttrsToList ( diff --git a/plugins/by-name/git-conflict/default.nix b/plugins/by-name/git-conflict/default.nix index 87ff3d5e..a38d7062 100644 --- a/plugins/by-name/git-conflict/default.nix +++ b/plugins/by-name/git-conflict/default.nix @@ -10,6 +10,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ maintainers.GaetanLepage ]; + dependencies = [ "git" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -18,10 +20,6 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; - extraConfig = { - dependencies.git.enable = lib.mkDefault true; - }; - settingsOptions = { default_mappings = helpers.defaultNullOpts.mkNullable (with types; either bool (attrsOf str)) true diff --git a/plugins/by-name/git-worktree/default.nix b/plugins/by-name/git-worktree/default.nix index 3daba895..d7705ded 100644 --- a/plugins/by-name/git-worktree/default.nix +++ b/plugins/by-name/git-worktree/default.nix @@ -13,6 +13,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.khaneliman ]; + dependencies = [ "git" ]; + # TODO: added 2025-04-06, remove after 25.05 imports = [ (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" ]; globals.git_worktree = cfg.settings; diff --git a/plugins/by-name/gitblame/default.nix b/plugins/by-name/gitblame/default.nix index 280b6165..17be1e81 100644 --- a/plugins/by-name/gitblame/default.nix +++ b/plugins/by-name/gitblame/default.nix @@ -33,6 +33,8 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; + dependencies = [ "git" ]; + settingsOptions = { enabled = defaultNullOpts.mkBool true '' Enables the plugin on Neovim startup. @@ -132,8 +134,4 @@ lib.nixvim.plugins.mkNeovimPlugin { virtual_text_column = 80; use_blame_commit_file_urls = true; }; - - extraConfig = { - dependencies.git.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/gitgutter/default.nix b/plugins/by-name/gitgutter/default.nix index a41be9b3..000972e9 100644 --- a/plugins/by-name/gitgutter/default.nix +++ b/plugins/by-name/gitgutter/default.nix @@ -43,6 +43,8 @@ lib.nixvim.plugins.mkVimPlugin { }) ]; + dependencies = [ "git" ]; + extraOptions = { recommendedSettings = lib.mkOption { type = types.bool; @@ -63,8 +65,6 @@ lib.nixvim.plugins.mkVimPlugin { foldtext = "gitgutter#fold#foldtext"; }; - dependencies.git.enable = lib.mkDefault true; - extraPackages = [ cfg.grepPackage ]; diff --git a/plugins/by-name/gitlab/default.nix b/plugins/by-name/gitlab/default.nix index 9d05c1b1..8eb3a02e 100644 --- a/plugins/by-name/gitlab/default.nix +++ b/plugins/by-name/gitlab/default.nix @@ -13,6 +13,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; + dependencies = [ "nodejs" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -22,10 +24,6 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; - extraConfig = { - dependencies.nodejs.enable = lib.mkDefault true; - }; - settingsOptions = { gitlab_url = defaultNullOpts.mkStr "https://gitlab.com" '' The GitLab instance url to use if not `https://gitlab.com`. diff --git a/plugins/by-name/gitmessenger/default.nix b/plugins/by-name/gitmessenger/default.nix index 7f2aa750..0d09c866 100644 --- a/plugins/by-name/gitmessenger/default.nix +++ b/plugins/by-name/gitmessenger/default.nix @@ -14,9 +14,7 @@ lib.nixvim.plugins.mkVimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; - extraConfig = { - dependencies.git.enable = lib.mkDefault true; - }; + dependencies = [ "git" ]; # TODO: Added 2024-12-16; remove after 25.05 optionsRenamedToSettings = [ diff --git a/plugins/by-name/gitsigns/default.nix b/plugins/by-name/gitsigns/default.nix index 4860535e..15667d29 100644 --- a/plugins/by-name/gitsigns/default.nix +++ b/plugins/by-name/gitsigns/default.nix @@ -1,7 +1,6 @@ { lib, config, - pkgs, ... }: let @@ -82,6 +81,8 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; + dependencies = [ "git" ]; + settingsOptions = import ./settings-options.nix lib; settingsExample = { @@ -111,7 +112,5 @@ lib.nixvim.plugins.mkNeovimPlugin { You should maybe enable the `trouble` plugin. ''; }; - - dependencies.git.enable = lib.mkDefault true; }; } diff --git a/plugins/by-name/glow/default.nix b/plugins/by-name/glow/default.nix index 89e19d46..4d7ef9cc 100644 --- a/plugins/by-name/glow/default.nix +++ b/plugins/by-name/glow/default.nix @@ -12,6 +12,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.getchoo ]; + dependencies = [ "glow" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -82,8 +84,4 @@ lib.nixvim.plugins.mkNeovimPlugin { width_ratio = 0.7; height_ratio = 0.7; }; - - extraConfig = { - dependencies.glow.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/godot/default.nix b/plugins/by-name/godot/default.nix index 988e5e2e..2e2a885f 100644 --- a/plugins/by-name/godot/default.nix +++ b/plugins/by-name/godot/default.nix @@ -12,6 +12,8 @@ lib.nixvim.plugins.mkVimPlugin { maintainers = [ maintainers.GaetanLepage ]; + dependencies = [ "godot" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -29,8 +31,4 @@ lib.nixvim.plugins.mkVimPlugin { settingsExample = { executable = "godot"; }; - - extraConfig = { - dependencies.godot.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/image/default.nix b/plugins/by-name/image/default.nix index a362acb4..584c266b 100644 --- a/plugins/by-name/image/default.nix +++ b/plugins/by-name/image/default.nix @@ -1,5 +1,6 @@ { lib, + config, ... }: let @@ -124,12 +125,13 @@ lib.nixvim.plugins.mkNeovimPlugin { ]; }; - extraConfig = cfg: { - # In theory, we could remove that if the user explicitly disables `downloadRemoteImages` for - # all integrations but shipping `curl` is not too heavy. - dependencies = { - curl.enable = lib.mkDefault true; - ueberzug.enable = lib.mkIf (cfg.settings.backend == "ueberzug") (lib.mkDefault true); - }; - }; + # In theory, we could remove that if the user explicitly disables `downloadRemoteImages` for + # all integrations but shipping `curl` is not too heavy. + dependencies = [ + "curl" + { + name = "ueberzug"; + enable = config.plugins.image.settings.backend == "ueberzug"; + } + ]; } diff --git a/plugins/by-name/lazygit/default.nix b/plugins/by-name/lazygit/default.nix index f100b244..644309b6 100644 --- a/plugins/by-name/lazygit/default.nix +++ b/plugins/by-name/lazygit/default.nix @@ -14,6 +14,11 @@ lib.nixvim.plugins.mkVimPlugin { maintainers = [ lib.maintainers.AndresBermeoMarinelli ]; + dependencies = [ + "git" + "lazygit" + ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -80,12 +85,4 @@ lib.nixvim.plugins.mkVimPlugin { use_custom_config_file_path = 0; config_file_path = [ ]; }; - - extraConfig = cfg: { - dependencies = { - git.enable = lib.mkDefault true; - lazygit.enable = lib.mkDefault true; - }; - - }; } diff --git a/plugins/by-name/lean/default.nix b/plugins/by-name/lean/default.nix index 3f174278..0d01600e 100644 --- a/plugins/by-name/lean/default.nix +++ b/plugins/by-name/lean/default.nix @@ -13,6 +13,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.khaneliman ]; + dependencies = [ "lean" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -184,10 +186,6 @@ lib.nixvim.plugins.mkNeovimPlugin { }; }; - extraConfig = { - dependencies.lean.enable = lib.mkDefault true; - }; - # TODO: Deprecated in 2025-01-31 inherit (import ./deprecations.nix) deprecateExtraOptions optionsRenamedToSettings; } diff --git a/plugins/by-name/ledger/default.nix b/plugins/by-name/ledger/default.nix index c128486b..eaf720f0 100644 --- a/plugins/by-name/ledger/default.nix +++ b/plugins/by-name/ledger/default.nix @@ -35,9 +35,7 @@ mkVimPlugin { }) ]; - extraConfig = { - dependencies.ledger.enable = lib.mkDefault true; - }; + dependencies = [ "ledger" ]; settingsOptions = { bin = helpers.mkNullOrStr '' diff --git a/plugins/by-name/llm/default.nix b/plugins/by-name/llm/default.nix index 90cae798..1ae6d891 100644 --- a/plugins/by-name/llm/default.nix +++ b/plugins/by-name/llm/default.nix @@ -10,6 +10,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; + dependencies = [ "llm-ls" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -19,18 +21,14 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; - extraConfig = - let - llm-ls-dep = config.dependencies.llm-ls; - in - { - dependencies.llm-ls.enable = lib.mkDefault true; - - # 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) - ); - }; + extraConfig = { + # If not setting this option, llm.nvim will try to download the llm-ls binary from the internet. + plugins.llm.settings.lsp.bin_path = + let + llm-ls-dep = config.dependencies.llm-ls; + in + lib.mkIf llm-ls-dep.enable (lib.mkDefault (lib.getExe llm-ls-dep.package)); + }; settingsOptions = import ./settings-options.nix lib; diff --git a/plugins/by-name/lualine/default.nix b/plugins/by-name/lualine/default.nix index 222552b9..edf01173 100644 --- a/plugins/by-name/lualine/default.nix +++ b/plugins/by-name/lualine/default.nix @@ -52,6 +52,8 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; + dependencies = [ "git" ]; + settingsOptions = let mkSeparatorsOption = @@ -406,8 +408,4 @@ lib.nixvim.plugins.mkNeovimPlugin { ]; }; }; - - extraConfig = { - dependencies.git.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/neogit/default.nix b/plugins/by-name/neogit/default.nix index 2506a6d6..3770fc91 100644 --- a/plugins/by-name/neogit/default.nix +++ b/plugins/by-name/neogit/default.nix @@ -84,6 +84,14 @@ lib.nixvim.plugins.mkNeovimPlugin { "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; }; settingsExample = { @@ -132,15 +140,5 @@ lib.nixvim.plugins.mkNeovimPlugin { "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); - }; }; } diff --git a/plugins/by-name/nvim-tree/default.nix b/plugins/by-name/nvim-tree/default.nix index a13c5dbb..3493302c 100644 --- a/plugins/by-name/nvim-tree/default.nix +++ b/plugins/by-name/nvim-tree/default.nix @@ -3,7 +3,6 @@ helpers, pkgs, config, - options, ... }: with lib; diff --git a/plugins/by-name/octo/default.nix b/plugins/by-name/octo/default.nix index 3e25b43d..810db246 100644 --- a/plugins/by-name/octo/default.nix +++ b/plugins/by-name/octo/default.nix @@ -13,6 +13,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.svl ]; + dependencies = [ "gh" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -178,7 +180,6 @@ lib.nixvim.plugins.mkNeovimPlugin { extraConfig = cfg: lib.mkMerge [ - { dependencies.gh.enable = lib.mkDefault true; } (lib.mkIf (cfg.settings.picker == null || cfg.settings.picker == "telescope") { plugins.telescope.enable = lib.mkDefault true; }) diff --git a/plugins/by-name/papis/default.nix b/plugins/by-name/papis/default.nix index 5a5cd5fb..e5fecb76 100644 --- a/plugins/by-name/papis/default.nix +++ b/plugins/by-name/papis/default.nix @@ -17,9 +17,7 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; - extraConfig = { - dependencies.yq.enable = lib.mkDefault true; - }; + dependencies = [ "yq" ]; settingsOptions = import ./settings-options.nix lib; diff --git a/plugins/by-name/parrot/default.nix b/plugins/by-name/parrot/default.nix index be2e995f..23784244 100644 --- a/plugins/by-name/parrot/default.nix +++ b/plugins/by-name/parrot/default.nix @@ -6,9 +6,7 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; - extraConfig = { - dependencies.ripgrep.enable = lib.mkDefault true; - }; + dependencies = [ "ripgrep" ]; settingsExample = lib.literalExpression '' { diff --git a/plugins/by-name/pckr/default.nix b/plugins/by-name/pckr/default.nix index d8493d5e..6f50e944 100644 --- a/plugins/by-name/pckr/default.nix +++ b/plugins/by-name/pckr/default.nix @@ -12,6 +12,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; + dependencies = [ "git" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -78,8 +80,6 @@ lib.nixvim.plugins.mkNeovimPlugin { }; extraConfig = cfg: { - dependencies.git.enable = lib.mkDefault true; - plugins.pckr.luaConfig = { # Otherwise pckr can't find itself pre = '' diff --git a/plugins/by-name/plantuml-syntax/default.nix b/plugins/by-name/plantuml-syntax/default.nix index 2a866ec2..55a23ec4 100644 --- a/plugins/by-name/plantuml-syntax/default.nix +++ b/plugins/by-name/plantuml-syntax/default.nix @@ -25,9 +25,7 @@ lib.nixvim.plugins.mkVimPlugin { }) ]; - extraConfig = { - dependencies.plantuml.enable = lib.mkDefault true; - }; + dependencies = [ "plantuml" ]; settingsOptions = { set_makeprg = defaultNullOpts.mkFlagInt 1 '' diff --git a/plugins/by-name/rest/default.nix b/plugins/by-name/rest/default.nix index bd29e7f5..841e854e 100644 --- a/plugins/by-name/rest/default.nix +++ b/plugins/by-name/rest/default.nix @@ -61,6 +61,8 @@ lib.nixvim.plugins.mkNeovimPlugin { "searchBack" ]; + dependencies = [ "curl" ]; + settingsOptions = { custom_dynamic_variables = lib.mkOption { type = with types; nullOr (maybeRaw (attrsOf strLuaFn)); @@ -302,8 +304,6 @@ lib.nixvim.plugins.mkNeovimPlugin { globals.rest_nvim = cfg.settings; - dependencies.curl.enable = lib.mkDefault true; - filetype = lib.mkIf cfg.enableHttpFiletypeAssociation { extension.http = "http"; }; diff --git a/plugins/by-name/rustaceanvim/default.nix b/plugins/by-name/rustaceanvim/default.nix index da06e742..2775a063 100644 --- a/plugins/by-name/rustaceanvim/default.nix +++ b/plugins/by-name/rustaceanvim/default.nix @@ -15,6 +15,7 @@ lib.nixvim.plugins.mkNeovimPlugin { deprecateExtraOptions = true; optionsRenamedToSettings = import ./renamed-options.nix; + dependencies = [ "rust-analyzer" ]; imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -56,8 +57,6 @@ lib.nixvim.plugins.mkNeovimPlugin { cfg: mkMerge [ { - dependencies.rust-analyzer.enable = lib.mkDefault true; - globals.rustaceanvim = cfg.settings; assertions = lib.nixvim.mkAssertions "plugins.rustaceanvim" { diff --git a/plugins/by-name/sg/default.nix b/plugins/by-name/sg/default.nix index 63b30822..51fad150 100644 --- a/plugins/by-name/sg/default.nix +++ b/plugins/by-name/sg/default.nix @@ -14,6 +14,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; + dependencies = [ "nodejs" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -24,8 +26,6 @@ lib.nixvim.plugins.mkNeovimPlugin { ]; extraConfig = { - dependencies.nodejs.enable = lib.mkDefault true; - plugins.sg.settings.node_executable = lib.mkIf config.dependencies.nodejs.enable ( lib.mkDefault (lib.getExe config.dependencies.nodejs.package) ); diff --git a/plugins/by-name/spectre/default.nix b/plugins/by-name/spectre/default.nix index ef4e724e..d096d4d1 100644 --- a/plugins/by-name/spectre/default.nix +++ b/plugins/by-name/spectre/default.nix @@ -1,5 +1,6 @@ { lib, + config, 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 = let 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); - }; - }; } diff --git a/plugins/by-name/supermaven/default.nix b/plugins/by-name/supermaven/default.nix index 82fc5798..96e6f473 100644 --- a/plugins/by-name/supermaven/default.nix +++ b/plugins/by-name/supermaven/default.nix @@ -7,15 +7,13 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.PoCo ]; + dependencies = [ "curl" ]; + # Register nvim-cmp association imports = [ { cmpSourcePlugins.supermaven = "supermaven"; } ]; - extraConfig = { - dependencies.curl.enable = lib.mkDefault true; - }; - settingsExample = lib.literalExpression '' { keymaps = { diff --git a/plugins/by-name/tagbar/default.nix b/plugins/by-name/tagbar/default.nix index b27d6368..b3e5b350 100644 --- a/plugins/by-name/tagbar/default.nix +++ b/plugins/by-name/tagbar/default.nix @@ -19,6 +19,8 @@ lib.nixvim.plugins.mkVimPlugin { }) ]; + dependencies = [ "ctags" ]; + settingsExample = { position = "right"; autoclose = false; @@ -35,8 +37,4 @@ lib.nixvim.plugins.mkVimPlugin { private = "󰛑 "; }; }; - - extraConfig = { - dependencies.ctags.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/telescope/default.nix b/plugins/by-name/telescope/default.nix index a5e17aa1..fed9d559 100644 --- a/plugins/by-name/telescope/default.nix +++ b/plugins/by-name/telescope/default.nix @@ -1,8 +1,6 @@ { lib, config, - pkgs, - options, ... }: with lib; @@ -45,6 +43,8 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; + dependencies = [ "bat" ]; + extraOptions = { keymaps = mkOption { type = @@ -111,8 +111,6 @@ lib.nixvim.plugins.mkNeovimPlugin { let $BAT_THEME = '${cfg.highlightTheme}' ''; - dependencies.bat.enable = lib.mkDefault true; - keymaps = mapAttrsToList ( key: mapping: let diff --git a/plugins/by-name/telescope/extensions/live-greps-args.nix b/plugins/by-name/telescope/extensions/live-greps-args.nix index 7bbc0258..d63a3102 100644 --- a/plugins/by-name/telescope/extensions/live-greps-args.nix +++ b/plugins/by-name/telescope/extensions/live-greps-args.nix @@ -12,6 +12,8 @@ mkExtension { extensionName = "live_grep_args"; package = "telescope-live-grep-args-nvim"; + dependencies = [ "ripgrep" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -67,8 +69,4 @@ mkExtension { }; theme = "dropdown"; }; - - extraConfig = { - dependencies.ripgrep.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/texpresso/default.nix b/plugins/by-name/texpresso/default.nix index f56580fe..f66ad697 100644 --- a/plugins/by-name/texpresso/default.nix +++ b/plugins/by-name/texpresso/default.nix @@ -12,6 +12,8 @@ lib.nixvim.plugins.mkVimPlugin { maintainers = [ maintainers.nickhu ]; + dependencies = [ "texpresso" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -19,8 +21,4 @@ lib.nixvim.plugins.mkVimPlugin { packageName = "texpresso"; }) ]; - - extraConfig = { - dependencies.texpresso.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/tinygit/default.nix b/plugins/by-name/tinygit/default.nix index 85691713..6394f85b 100644 --- a/plugins/by-name/tinygit/default.nix +++ b/plugins/by-name/tinygit/default.nix @@ -9,12 +9,10 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; - extraConfig = cfg: { - dependencies = { - curl.enable = lib.mkDefault true; - git.enable = lib.mkDefault true; - }; - }; + dependencies = [ + "curl" + "git" + ]; settingsExample = { stage.moveToNextHunkOnStagingToggle = true; diff --git a/plugins/by-name/todo-comments/default.nix b/plugins/by-name/todo-comments/default.nix index d4e5738e..8a274d94 100644 --- a/plugins/by-name/todo-comments/default.nix +++ b/plugins/by-name/todo-comments/default.nix @@ -21,6 +21,8 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.khaneliman ]; + dependencies = [ "ripgrep" ]; + imports = [ # TODO: Added 2023-11-06, remove after 24.11 (mkRemovedOptionModule [ @@ -432,8 +434,6 @@ lib.nixvim.plugins.mkNeovimPlugin { } ]; - dependencies.ripgrep.enable = lib.mkDefault true; - keymaps = lib.pipe cfg.keymaps [ (filterAttrs (n: keymap: keymap != null && keymap.key != null)) (mapAttrsToList ( diff --git a/plugins/by-name/treesitter/default.nix b/plugins/by-name/treesitter/default.nix index 89701aa8..fa9febec 100644 --- a/plugins/by-name/treesitter/default.nix +++ b/plugins/by-name/treesitter/default.nix @@ -253,6 +253,11 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; + dependencies = lib.map (name: { + inherit name; + enable = !config.plugins.treesitter.nixGrammars; + }) buildGrammarDeps; + settingsOptions = { auto_install = helpers.defaultNullOpts.mkBool false '' Whether to automatically install missing parsers when entering a buffer. @@ -456,13 +461,6 @@ lib.nixvim.plugins.mkNeovimPlugin { 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" ( lib.map (packageName: { when = !cfg.nixGrammars && !config.dependencies.${packageName}.enable; diff --git a/plugins/by-name/typst-preview/default.nix b/plugins/by-name/typst-preview/default.nix index dd67bff7..2d005329 100644 --- a/plugins/by-name/typst-preview/default.nix +++ b/plugins/by-name/typst-preview/default.nix @@ -22,12 +22,12 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; - extraConfig = cfg: { - dependencies = { - tinymist.enable = lib.mkDefault true; - websocat.enable = lib.mkDefault true; - }; + dependencies = [ + "tinymist" + "websocat" + ]; + extraConfig = cfg: { plugins.typst-preview.settings = { # Disable automatic downloading of binary dependencies dependencies_bin = { diff --git a/plugins/by-name/typst-vim/default.nix b/plugins/by-name/typst-vim/default.nix index 16dddd6d..419f3e4c 100644 --- a/plugins/by-name/typst-vim/default.nix +++ b/plugins/by-name/typst-vim/default.nix @@ -27,6 +27,8 @@ lib.nixvim.plugins.mkVimPlugin { }) ]; + dependencies = [ "typst" ]; + extraOptions = { keymaps = { silent = mkOption { @@ -40,8 +42,6 @@ lib.nixvim.plugins.mkVimPlugin { }; extraConfig = cfg: { - dependencies.typst.enable = lib.mkDefault true; - keymaps = with cfg.keymaps; helpers.keymaps.mkKeymaps diff --git a/plugins/by-name/vimux/default.nix b/plugins/by-name/vimux/default.nix index b13f4c0e..9a9e184c 100644 --- a/plugins/by-name/vimux/default.nix +++ b/plugins/by-name/vimux/default.nix @@ -5,6 +5,8 @@ lib.nixvim.plugins.mkVimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; + dependencies = [ "tmux" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -13,10 +15,6 @@ lib.nixvim.plugins.mkVimPlugin { }) ]; - extraConfig = { - dependencies.tmux.enable = lib.mkDefault true; - }; - settingsOptions = import ./settings-options.nix lib; settingsExample = { diff --git a/plugins/by-name/wezterm/default.nix b/plugins/by-name/wezterm/default.nix index 4843ad2d..781078b6 100644 --- a/plugins/by-name/wezterm/default.nix +++ b/plugins/by-name/wezterm/default.nix @@ -12,6 +12,8 @@ lib.nixvim.plugins.neovim.mkNeovimPlugin { maintainers = [ lib.maintainers.khaneliman ]; + dependencies = [ "wezterm" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -29,8 +31,4 @@ lib.nixvim.plugins.neovim.mkNeovimPlugin { settingsExample = { create_commands = false; }; - - extraConfig = { - dependencies.wezterm.enable = lib.mkDefault true; - }; } diff --git a/plugins/by-name/windsurf-nvim/default.nix b/plugins/by-name/windsurf-nvim/default.nix index 4bc56217..f0bdf1e2 100644 --- a/plugins/by-name/windsurf-nvim/default.nix +++ b/plugins/by-name/windsurf-nvim/default.nix @@ -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. ''; + dependencies = [ + "curl" + "gzip" + "coreutils" + "util-linux" + "codeium" + ]; + imports = [ # Register nvim-cmp association { cmpSourcePlugins.codeium = "windsurf-nvim"; } @@ -26,19 +34,4 @@ lib.nixvim.plugins.mkNeovimPlugin { settingsExample = { enable_chat = true; }; - - extraConfig = { - dependencies = - lib.genAttrs - [ - "curl" - "gzip" - "coreutils" - "util-linux" - "codeium" - ] - (_: { - enable = lib.mkDefault true; - }); - }; } diff --git a/plugins/by-name/yazi/default.nix b/plugins/by-name/yazi/default.nix index 1285725f..2236676e 100644 --- a/plugins/by-name/yazi/default.nix +++ b/plugins/by-name/yazi/default.nix @@ -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. ''; + dependencies = [ "yazi" ]; + imports = [ # TODO: added 2025-04-07, remove after 25.05 (lib.nixvim.mkRemovedPackageOptionModule { @@ -29,10 +31,6 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; - extraConfig = { - dependencies.yazi.enable = lib.mkDefault true; - }; - settingsOptions = { log_level = defaultNullOpts.mkLogLevel' { pluginDefault = "off"; diff --git a/plugins/by-name/zk/default.nix b/plugins/by-name/zk/default.nix index 21836dd5..b6e1f1bc 100644 --- a/plugins/by-name/zk/default.nix +++ b/plugins/by-name/zk/default.nix @@ -38,6 +38,8 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; + dependencies = [ "zk" ]; + settingsOptions = { picker = helpers.defaultNullOpts.mkEnumFirstDefault @@ -115,8 +117,6 @@ lib.nixvim.plugins.mkNeovimPlugin { }; extraConfig = cfg: { - dependencies.zk.enable = lib.mkDefault true; - warnings = lib.nixvim.mkWarnings "plugins.zk" ( mapAttrsToList (picker: pluginName: {