- sort automatcially generated vim derivations
- move the plugins to be derived by VAM into its own file: vim-plugin-names
- rename vimrc into vimUtils moving all common code into it
so that it is possible to use it within ~/.nixpkgs/config.nix
- Moving all important documentation into vimUtils
- provide vimPlugins.pluginnames2Nix to provide a bin/vim-* command
writing updated derivations into its buffer
VAM's repository's nix.vim got some improvements @ VAM repository, eg hg
fetchout out got fixed and shell failures are noticed now (Thanks to Arseniy
Seroka)
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
Git commit ids shouldn't be used as version numbers in nixpkgs:
* they don't increase monotonically
* they don't always start with a digit, causing nix to not parse them as
version numbers, and instead sees them as part of the package name,
causing the package to (seemingly) conflict with itself upon upgrade.
And use fetchzip instead of fetchurl towards github.com to not let this
happen again. (fetchzip checks the hash on the *extracted* archive, so
changes in compression algo etc. doesn't change the hash.)
Currently some plugins use "vim-" prefix, some use "-vim" suffix and
some have no prefix or suffix at all.
I chose "vimplugin-" prefix to match the attribute path: vimPlugins.*
Using a git commit id as version number doesn't work well, so use the
commit date instead.
Also, there is no other version of YouCompleteMe than the git version,
so drop 'git' from the package name.
patchShebangs fixes build failure in chroot (in this new version).
The --system-libclang flag is now needed to prevent YouCompleteMe from
trying to download and build clang (which fails).