This change reverts #176044 and #178000, as well as updating the version
to the latest stable release. Unfortunately, despite the lack of updates
to gotags, it is still depended upon by vim-go, thus we must keep it
around until they (and other consumers) have removed it from the
dependency trees.
This change also adds myself as a maintainer, since I would not wish the
burden of this package's maintanence on anybody else.
Adding "packages" to the neovim distribution triggers the wrapping of
the derivation. This is because it tries to "set packpath/rtp" in the
init.vim.
If we set these arguments via --cmd instead we can avoid to create an
init.vim, which can be useful if we want to wrap an init.lua later on
(in home-manager for instance, we dont want to generate viml code).
Also removes the support for "configure" in makeNeovimConfig and
configure.plug / configure.vam packages in the compatibility layer
'legacyWrapper'.
vim does its own shebang patching, which ends up pulling in build platform
tools. This commit patches the build system to use HOST_PATH instead.
I also enabled strictDeps and added additional dependencies needed to make
patchShebangs work on some of the other scripts.
This commit brings the cross-compiled package in line with the native one, but
even the native build has some unpatched shebang references to python, perl and
csh. Additionally, efm_perl.pl has a broken shebang (#! -w) because vim's
build system can't handle not finding perl.
Neovim plugins are now more often than not written in lua.
One advantage of the lua ecosystem over vim's is the existence of
luarocks and the rockspec format, which allows to specify a package
dependencies formally.
I would like more neovim plugins to have a formal description,
"rockspec" being the current candidate.
This MR allows to use nix lua packages as neovim plugins, so as to enjoy
every benefit that rockspecs bring:
- dependdency discovery
- ability to run test suite
- luarocks versioning
- rockspec metadata
the vim update.py script will check if an attribute with the vim plugin
pname exists in lua51Packages. If it does, it uses
buildNeovimPluginFrom2Nix on it, which modifies the luarocks config to
do an almost flat install (luarocks will install the package in the lua
folder instead of share/5.1/lua etc).
It also calls toVimPlugin on it to get all the vim plugin niceties.
The list of packages that could benefit from this is available at
https://luarocks.org/labels/neovim
but I hope it grows.