summary refs log tree commit diff
path: root/pkgs/misc/vim-plugins
diff options
context:
space:
mode:
authorRoman Volosatovs <rvolosatovs@riseup.net>2018-09-16 18:26:45 +0200
committerRoman Volosatovs <rvolosatovs@riseup.net>2018-09-20 08:52:32 +0200
commit516a83c0e825843b5984adcabf710ef240343f31 (patch)
tree52be5e136d7bc976f0eb535090fe6acbdd5d7483 /pkgs/misc/vim-plugins
parent3f47dfff3bd88735d502990b6ad196bd0ea354cd (diff)
downloadnixlib-516a83c0e825843b5984adcabf710ef240343f31.tar
nixlib-516a83c0e825843b5984adcabf710ef240343f31.tar.gz
nixlib-516a83c0e825843b5984adcabf710ef240343f31.tar.bz2
nixlib-516a83c0e825843b5984adcabf710ef240343f31.tar.lz
nixlib-516a83c0e825843b5984adcabf710ef240343f31.tar.xz
nixlib-516a83c0e825843b5984adcabf710ef240343f31.tar.zst
nixlib-516a83c0e825843b5984adcabf710ef240343f31.zip
vimPlugins: Add vim-plug addon implementation
Diffstat (limited to 'pkgs/misc/vim-plugins')
-rw-r--r--pkgs/misc/vim-plugins/vim-utils.nix24
1 files changed, 22 insertions, 2 deletions
diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix
index bae1645563f0..9255bbe12635 100644
--- a/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/pkgs/misc/vim-plugins/vim-utils.nix
@@ -172,6 +172,7 @@ let
     packages ? null,
     vam ? null,
     pathogen ? null,
+    plug ? null,
     customRC ? ""
   }:
 
@@ -194,6 +195,18 @@ let
         execute pathogen#infect('${pluginsEnv}/{}')
       '');
 
+      /* vim-plug is an extremely popular vim plugin manager.
+      */
+      plugImpl = lib.optionalString (plug != null)
+      ''
+        source ${vimPlugins.vim-plug.rtp}/plug.vim
+        call plug#begin('/dev/null')
+
+        '' + (lib.concatMapStringsSep "\n" (pkg: "Plug '${pkg.rtp}'") plug.plugins) + ''
+
+        call plug#end()
+      '';
+
       /*
        vim-addon-manager = VAM
 
@@ -302,6 +315,7 @@ let
 
   ${vamImpl}
   ${pathogenImpl}
+  ${plugImpl}
   ${vundleImpl}
   ${neobundleImpl}
   ${nativeImpl}
@@ -427,7 +441,8 @@ rec {
     packages ? {},
     givenKnownPlugins ? null,
     vam ? null,
-    pathogen ? null, ...
+    pathogen ? null,
+    plug ? null, ...
   }:
     let
       # This is probably overcomplicated, but I don't understand this well enough to know what's necessary.
@@ -439,7 +454,7 @@ rec {
       vamNames = findDependenciesRecursively { inherit knownPlugins; names = lib.concatMap toNames vam.pluginDictionaries; };
       names = (lib.optionals (pathogen != null) pathogenNames) ++
               (lib.optionals (vam != null) vamNames);
-      nonNativePlugins = map (name: knownPlugins.${name}) names;
+      nonNativePlugins = map (name: knownPlugins.${name}) names ++ (lib.optionals (plug != null) plug.plugins);
       nativePluginsConfigs = lib.attrsets.attrValues packages;
       nativePlugins = lib.concatMap ({start?[], opt?[]}: start++opt) nativePluginsConfigs;
     in
@@ -457,6 +472,11 @@ rec {
     vimrcConfig.pathogen.pluginNames = [ "vim-addon-nix" ];
   };
 
+  test_vim_with_vim_addon_nix_using_plug = vim_configurable.customize {
+    name = "vim-with-vim-addon-nix-using-plug";
+    vimrcConfig.plug.plugins = with vimPlugins; [ vim-addon-nix ];
+  };
+
   test_vim_with_vim_addon_nix = vim_configurable.customize {
     name = "vim-with-vim-addon-nix";
     vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-addon-nix ];