diff options
Diffstat (limited to 'pkgs/misc')
-rw-r--r-- | pkgs/misc/vim-plugins/vim-utils.nix | 24 |
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 ]; |