summary refs log tree commit diff
path: root/pkgs/misc/vim-plugins
diff options
context:
space:
mode:
authorEvan Danaher <github@edanaher.net>2017-03-19 18:44:02 -0400
committerEvan Danaher <github@edanaher.net>2017-03-19 18:44:02 -0400
commitc34aa75d30ce5d74d773210f97e0d43daf5c3a6b (patch)
tree7f237a4c5f01403f6717696794e59880dfbd3368 /pkgs/misc/vim-plugins
parent16fff5ebce23c0f275abbabfb21ff4270100f674 (diff)
downloadnixpkgs-c34aa75d30ce5d74d773210f97e0d43daf5c3a6b.tar
nixpkgs-c34aa75d30ce5d74d773210f97e0d43daf5c3a6b.tar.gz
nixpkgs-c34aa75d30ce5d74d773210f97e0d43daf5c3a6b.tar.bz2
nixpkgs-c34aa75d30ce5d74d773210f97e0d43daf5c3a6b.tar.lz
nixpkgs-c34aa75d30ce5d74d773210f97e0d43daf5c3a6b.tar.xz
nixpkgs-c34aa75d30ce5d74d773210f97e0d43daf5c3a6b.tar.zst
nixpkgs-c34aa75d30ce5d74d773210f97e0d43daf5c3a6b.zip
vim-utils: Handle overriding knownPlugins betters.
Diffstat (limited to 'pkgs/misc/vim-plugins')
-rw-r--r--pkgs/misc/vim-plugins/vim-utils.nix7
1 files changed, 6 insertions, 1 deletions
diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix
index 22098b68a55..87b2f9d3e18 100644
--- a/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/pkgs/misc/vim-plugins/vim-utils.nix
@@ -412,11 +412,16 @@ rec {
   } // a);
 
   requiredPlugins = {
-    knownPlugins ? vimPlugins,
+    givenKnownPlugins ? null,
     vam ? null,
     pathogen ? null, ...
   }:
     let
+      # This is probably overcomplicated, but I don't understand this well enough to know what's necessary.
+      knownPlugins = if givenKnownPlugins != null then givenKnownPlugins else
+                     if vam != null && vam ? knownPlugins then vam.knownPlugins else
+                     if pathogen != null && pathogen ? knownPlugins then pathogen.knownPlugins else
+                     vimPlugins;
       pathogenNames = map (name: knownPlugins.${name}) (findDependenciesRecursively { inherit knownPlugins; names = pathogen.pluginNames; });
       vamNames = findDependenciesRecursively { inherit knownPlugins; names = lib.concatMap toNames vam.pluginDictionaries; };
       names = (lib.optionals (pathogen != null) pathogenNames) ++