diff options
author | Evan Danaher <github@edanaher.net> | 2017-02-27 12:27:45 -0500 |
---|---|---|
committer | Evan Danaher <github@edanaher.net> | 2017-02-27 12:36:03 -0500 |
commit | dcab4279083a4c04c5d64d40eda3a98e903085b9 (patch) | |
tree | c0b58aaa4aabb04fd0ddf47ef092b20e7630161d /pkgs/misc/vim-plugins | |
parent | 6018cf4a692b5e12e433cc332f8d8f79ccd57ba1 (diff) | |
download | nixlib-dcab4279083a4c04c5d64d40eda3a98e903085b9.tar nixlib-dcab4279083a4c04c5d64d40eda3a98e903085b9.tar.gz nixlib-dcab4279083a4c04c5d64d40eda3a98e903085b9.tar.bz2 nixlib-dcab4279083a4c04c5d64d40eda3a98e903085b9.tar.lz nixlib-dcab4279083a4c04c5d64d40eda3a98e903085b9.tar.xz nixlib-dcab4279083a4c04c5d64d40eda3a98e903085b9.tar.zst nixlib-dcab4279083a4c04c5d64d40eda3a98e903085b9.zip |
vim-plugins: Add infrastructure for python[3]Dependencies.
This allows vim plugins to specify python dependencies required at runtime, and they will be added to the python environment.
Diffstat (limited to 'pkgs/misc/vim-plugins')
-rw-r--r-- | pkgs/misc/vim-plugins/default.nix | 1 | ||||
-rw-r--r-- | pkgs/misc/vim-plugins/vim-utils.nix | 23 |
2 files changed, 18 insertions, 6 deletions
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix index c8872a40e561..01ed0d4d5f07 100644 --- a/pkgs/misc/vim-plugins/default.nix +++ b/pkgs/misc/vim-plugins/default.nix @@ -4,6 +4,7 @@ , xkb_switch, rustracerd, fzf , python3, boost, icu , ycmd +, pythonPackages, python3Packages , Cocoa ? null }: diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix index 4b754f15c0fa..6fad58269c0d 100644 --- a/pkgs/misc/vim-plugins/vim-utils.nix +++ b/pkgs/misc/vim-plugins/vim-utils.nix @@ -150,6 +150,10 @@ vim_with_plugins can be installed like any other application within Nix. let inherit (stdenv) lib; + toNames = x: + if builtins.isString x then [x] + else (lib.optional (x ? name) x.name) + ++ (x.names or []); findDependenciesRecursively = {knownPlugins, names}: let depsOf = name: (builtins.getAttr name knownPlugins).dependencies or []; @@ -211,11 +215,6 @@ let (let knownPlugins = vam.knownPlugins or vimPlugins; - toNames = x: - if builtins.isString x then [x] - else (lib.optional (x ? name) x.name) - ++ (x.names or []); - names = findDependenciesRecursively { inherit knownPlugins; names = lib.concatMap toNames vam.pluginDictionaries; }; # Vim almost reads JSON, so eventually JSON support should be added to Nix @@ -412,6 +411,19 @@ rec { configurePhase =":"; } // a); + requiredPlugins = { + knownPlugins ? vimPlugins, + vam ? null, + pathogen ? null, ... + }: + let + 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) ++ + (lib.optionals (vam != null) vamNames); + in + map (name: knownPlugins.${name}) names; + # test cases: test_vim_with_vim_addon_nix_using_vam = vim_configurable.customize { name = "vim-with-vim-addon-nix-using-vam"; @@ -427,5 +439,4 @@ rec { name = "vim-with-vim-addon-nix"; vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-addon-nix ]; }; - } |