neovim: make generated wrapper args overridable

especially useful in home-manager to remove the generated options

Changed files
+8 -10
pkgs
applications
editors
neovim
+8 -10
pkgs/applications/editors/neovim/wrapper.nix
···
, packpathDirs
, ...
}:
+
assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env.";
+
stdenv.mkDerivation (finalAttrs:
let
rcContent = ''
···
wrapperArgsStr = if lib.isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs;
-
commonWrapperArgs =
+
generatedWrapperArgs =
# vim accepts a limited number of commands so we join them all
[
"--add-flags" ''--cmd "lua ${providerLuaRc}"''
···
finalMakeWrapperArgs =
[ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim" ]
++ [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" ]
-
++ lib.optionals wrapRc [ "--add-flags" "-u ${writeText "init.lua" rcContent}" ]
-
++ commonWrapperArgs
+
++ lib.optionals finalAttrs.wrapRc [ "--add-flags" "-u ${writeText "init.lua" rcContent}" ]
+
++ finalAttrs.generatedWrapperArgs
;
perlEnv = perl.withPackages (p: [ p.NeovimExt p.Appcpanminus ]);
-
in
-
assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env.";
-
-
stdenv.mkDerivation (finalAttrs: {
+
in {
name = "neovim-${lib.getVersion neovim-unwrapped}${extraName}";
__structuredAttrs = true;
···
inherit wrapRc providerLuaRc packpathDirs;
inherit python3Env rubyEnv;
withRuby = rubyEnv != null;
-
inherit wrapperArgs;
+
inherit wrapperArgs generatedWrapperArgs;
luaRcContent = rcContent;
-
# Remove the symlinks created by symlinkJoin which we need to perform
# extra actions upon
postBuild = lib.optionalString stdenv.isLinux ''
···
''
+ lib.optionalString (manifestRc != null) (let
manifestWrapperArgs =
-
[ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim-wrapper" ] ++ commonWrapperArgs;
+
[ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim-wrapper" ] ++ finalAttrs.generatedWrapperArgs;
in ''
echo "Generating remote plugin manifest"
export NVIM_RPLUGIN_MANIFEST=$out/rplugin.vim