Skip to content

Commit

Permalink
neovim: make generated wrapper args overridable
Browse files Browse the repository at this point in the history
especially useful in home-manager to remove the generated options
  • Loading branch information
teto authored and marcusramberg committed Dec 30, 2023
1 parent 0c0f4c3 commit eae08c6
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions pkgs/applications/editors/neovim/wrapper.nix
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ let
, packpathDirs
, ...
}:
assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env.";

stdenv.mkDerivation (finalAttrs:
let

rcContent = ''
Expand All @@ -51,7 +53,7 @@ let

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}"''
Expand All @@ -76,15 +78,12 @@ let
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;
Expand All @@ -93,9 +92,8 @@ let
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 ''
Expand Down Expand Up @@ -123,7 +121,7 @@ let
''
+ 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
Expand Down

0 comments on commit eae08c6

Please sign in to comment.