nixpkgs/pkgs/misc/vim-plugins/default.nix

46 lines
1.2 KiB
Nix
Raw Normal View History

experimental/vim-vam-pathogen-vimrc-support This patch implements derving a .vimrc from vim-plugins.nix loading those plugins by either Pathogen or VAM (VAM seems to be slightly faster and is much more powerful). Example: environment.systemPackages = [ # default plain vim vim_configurable # vim which get's called vim-with-addon-nix (vim_configurable.customize { name = "vim-with-addon-nix"; vimrcConfig.vam.pluginDictionaries = [{name = "vim-addon-nix"; }]; }) ]; This way you can provide an "enhanced Vim" and a standard Vim. Details about what this commit changes: 1) provide a new toplevel name vimrc which * provides a way to build up a .vimrc using either pathogen or VAM (knowing about plugin dependencies by name) * can enhance vim to support. vim.customize { name = "name-user"; vam.pluginDictionaries and/or pathogen.pluginNames = .. } * introduce rtp names for each vim plugin pointing to the runtimepath path * suggest naming to be the same as vim-pi so that VAM's dependencies work * derive some packages as example from vim-pi using VAM's new autoload/nix.vim supporting simple dependencies * test case for vim-addon-nix for VAM/pathogen 2) enhance vim_configurable to support .customize 3) update many plugins by using VAM's implementation not rewriting those which * vim-pi doesn't know about the git source yet (TODO: make vim-pi be aware of those) * have special build code This commit partially conflicts with commits done by Bjørn Forsman starting by 37f961628b, eg the one using lower case attr and pkg names, because they don't match vim-pi (eg YouCompleteMe). Rather than resolving the conflict this just adds aliases so that both names can be used
2014-11-08 18:34:13 +00:00
# TODO check that no license information gets lost
{ callPackage, config, lib, vimUtils, vim, darwin, llvmPackages, luaPackages }:
let
experimental/vim-vam-pathogen-vimrc-support This patch implements derving a .vimrc from vim-plugins.nix loading those plugins by either Pathogen or VAM (VAM seems to be slightly faster and is much more powerful). Example: environment.systemPackages = [ # default plain vim vim_configurable # vim which get's called vim-with-addon-nix (vim_configurable.customize { name = "vim-with-addon-nix"; vimrcConfig.vam.pluginDictionaries = [{name = "vim-addon-nix"; }]; }) ]; This way you can provide an "enhanced Vim" and a standard Vim. Details about what this commit changes: 1) provide a new toplevel name vimrc which * provides a way to build up a .vimrc using either pathogen or VAM (knowing about plugin dependencies by name) * can enhance vim to support. vim.customize { name = "name-user"; vam.pluginDictionaries and/or pathogen.pluginNames = .. } * introduce rtp names for each vim plugin pointing to the runtimepath path * suggest naming to be the same as vim-pi so that VAM's dependencies work * derive some packages as example from vim-pi using VAM's new autoload/nix.vim supporting simple dependencies * test case for vim-addon-nix for VAM/pathogen 2) enhance vim_configurable to support .customize 3) update many plugins by using VAM's implementation not rewriting those which * vim-pi doesn't know about the git source yet (TODO: make vim-pi be aware of those) * have special build code This commit partially conflicts with commits done by Bjørn Forsman starting by 37f961628b, eg the one using lower case attr and pkg names, because they don't match vim-pi (eg YouCompleteMe). Rather than resolving the conflict this just adds aliases so that both names can be used
2014-11-08 18:34:13 +00:00
inherit (vimUtils.override {inherit vim;}) buildVimPluginFrom2Nix;
inherit (lib) extends;
initialPackages = self: {
# Convert derivation to a vim plugin.
toVimPlugin = drv:
drv.overrideAttrs(oldAttrs: {
passthru = (oldAttrs.passthru or {}) // {
vimPlugin = true;
};
});
};
2018-12-27 10:12:48 +00:00
plugins = callPackage ./generated.nix {
inherit buildVimPluginFrom2Nix;
2016-10-06 16:34:39 +00:00
};
# TL;DR
# * Add your plugin to ./vim-plugin-names
# * run ./update.py
#
# If additional modifications to the build process are required,
# add to ./overrides.nix.
overrides = callPackage ./overrides.nix {
inherit (darwin.apple_sdk.frameworks) Cocoa CoreFoundation CoreServices;
inherit buildVimPluginFrom2Nix;
inherit llvmPackages luaPackages;
2015-07-09 02:09:13 +00:00
};
2021-05-17 19:39:24 +00:00
aliases = if (config.allowAliases or true) then (import ./aliases.nix lib) else final: prev: {};
extensible-self = lib.makeExtensible
(extends aliases
(extends overrides
(extends plugins initialPackages)
)
);
in
extensible-self