summary refs log tree commit diff
path: root/pkgs/misc/vim-plugins/vim-utils.nix
diff options
context:
space:
mode:
authorTimo Kaufmann <timokau@zoho.com>2018-12-31 10:22:15 +0100
committerTimo Kaufmann <timokau@zoho.com>2018-12-31 10:31:14 +0100
commit093cfde1e07ee534456b51c120220d0c48b46e16 (patch)
treef47819db0b400ea784e0643eeaa79a4bb4de5d4b /pkgs/misc/vim-plugins/vim-utils.nix
parentf8ff164806afeee6b5517b8ef8df48999b0e0420 (diff)
downloadnixpkgs-093cfde1e07ee534456b51c120220d0c48b46e16.tar
nixpkgs-093cfde1e07ee534456b51c120220d0c48b46e16.tar.gz
nixpkgs-093cfde1e07ee534456b51c120220d0c48b46e16.tar.bz2
nixpkgs-093cfde1e07ee534456b51c120220d0c48b46e16.tar.lz
nixpkgs-093cfde1e07ee534456b51c120220d0c48b46e16.tar.xz
nixpkgs-093cfde1e07ee534456b51c120220d0c48b46e16.tar.zst
nixpkgs-093cfde1e07ee534456b51c120220d0c48b46e16.zip
vimUtils: fix requiredPlugins
I broke this in #52767 and didn't notice because I only tested with vim
and `requiredPlugins` is only used by neovim. This would break setups
that use string-plugins (like pathogen) with neovim.
Diffstat (limited to 'pkgs/misc/vim-plugins/vim-utils.nix')
-rw-r--r--pkgs/misc/vim-plugins/vim-utils.nix18
1 files changed, 12 insertions, 6 deletions
diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix
index 1d305cd5349..61e89521c8c 100644
--- a/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/pkgs/misc/vim-plugins/vim-utils.nix
@@ -1,4 +1,4 @@
-{stdenv, vim, vimPlugins, vim_configurable, buildEnv, writeText, writeScriptBin
+{stdenv, vim, vimPlugins, vim_configurable, neovim, buildEnv, writeText, writeScriptBin
 , nix-prefetch-hg, nix-prefetch-git }:
 
 /*
@@ -407,6 +407,7 @@ rec {
 
   inherit (import ./build-vim-plugin.nix { inherit stdenv rtpPath vim; }) buildVimPlugin buildVimPluginFrom2Nix;
 
+  # used to figure out which python dependencies etc. neovim needs
   requiredPlugins = {
     packages ? {},
     givenKnownPlugins ? null,
@@ -420,11 +421,11 @@ rec {
                      if vam != null && vam ? knownPlugins then vam.knownPlugins else
                      if pathogen != null && pathogen ? knownPlugins then pathogen.knownPlugins else
                      vimPlugins;
-      pathogenNames = findDependenciesRecursively knownPlugins pathogen.pluginNames;
-      vamNames = findDependenciesRecursively knownPlugins (lib.concatMap vamDictToNames vam.pluginDictionaries);
-      names = (lib.optionals (pathogen != null) pathogenNames) ++
-              (lib.optionals (vam != null) vamNames);
-      nonNativePlugins = map (name: knownPlugins.${name}) names ++ (lib.optionals (plug != null) plug.plugins);
+      pathogenPlugins = findDependenciesRecursively knownPlugins pathogen.pluginNames;
+      vamPlugins = findDependenciesRecursively knownPlugins (lib.concatMap vamDictToNames vam.pluginDictionaries);
+      nonNativePlugins = (lib.optionals (pathogen != null) pathogenPlugins)
+                      ++ (lib.optionals (vam != null) vamPlugins)
+                      ++ (lib.optionals (plug != null) plug.plugins);
       nativePluginsConfigs = lib.attrsets.attrValues packages;
       nativePlugins = lib.concatMap ({start?[], opt?[], knownPlugins?vimPlugins}: start++opt) nativePluginsConfigs;
     in
@@ -451,4 +452,9 @@ rec {
     name = "vim-with-vim-addon-nix";
     vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
   };
+
+  # only neovim makes use of `requiredPlugins`, test this here
+  test_nvim_with_vim_nix_using_pathogen = neovim.override {
+    configure.pathogen.pluginNames = [ "vim-nix" ];
+  };
 }