neovim: set provider configuration to initrc (#498687)

This commit is contained in:
Matthieu Coudron
2026-03-13 11:58:06 +00:00
committed by GitHub
3 changed files with 46 additions and 37 deletions
+2
View File
@@ -242,6 +242,8 @@
- `openrgb` was updated to 1.0rc2, which now uses Plugin API version 4.
Some existing OpenRGB plugins may be incompatible or require updates.
- `wrapNeovimUnstable` now sets provider-related configuration in its generated config rather than as wrapper arguments. It should not affect configuration unless you set `wrapRc` to false or are using the `legacyWrapper`.
- We now use the upstream wrapper script for Gradle, supporting both the `JAVA_HOME` and `GRADLE_OPTS` environment variables.
- the `autossh-ng` NixOS module was introduced as a simpler alternative to the existing `autossh` module.
+2 -1
View File
@@ -223,7 +223,8 @@ let
res
// {
wrapperArgs = lib.escapeShellArgs res.wrapperArgs + " " + extraMakeWrapperArgs;
wrapRc = (configure != { });
wrapRc = configure != { };
legacyWrapper = true;
}
);
+42 -36
View File
@@ -105,13 +105,16 @@ let
packpathDirs.myNeovimPackages = vimPackageInfo.vimPackage;
finalPackdir = neovimUtils.packDir packpathDirs;
rcContent = ''
${luaRcContent}
''
+ lib.optionalString (neovimRcContent' != "") ''
vim.cmd.source "${writeText "init.vim" neovimRcContent'}"
''
+ lib.optionalString autoconfigure (lib.concatStringsSep "\n" vimPackageInfo.pluginAdvisedLua);
rcContent = lib.concatStringsSep "\n" (
[
providerLuaRc
]
++ lib.optional (luaRcContent != "") luaRcContent
++ lib.optional (neovimRcContent' != "") ''
vim.cmd.source "${writeText "init.vim" neovimRcContent'}"
''
++ lib.optionals autoconfigure vimPackageInfo.pluginAdvisedLua
);
python3Env =
lib.warnIf (attrs ? python3Env)
@@ -126,34 +129,37 @@ let
wrapperArgsStr = if lib.isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs;
generatedWrapperArgs = [
# vim accepts a limited number of commands so we join all the provider ones
"--add-flags"
''--cmd "lua ${providerLuaRc}"''
]
++
lib.optionals
(
finalAttrs.packpathDirs.myNeovimPackages.start != [ ]
|| finalAttrs.packpathDirs.myNeovimPackages.opt != [ ]
)
[
"--add-flags"
''--cmd "set packpath^=${finalPackdir}"''
"--add-flags"
''--cmd "set rtp^=${finalPackdir}"''
]
++ lib.optionals finalAttrs.withRuby [
"--set"
"GEM_HOME"
"${rubyEnv}/${rubyEnv.ruby.gemPath}"
]
++ lib.optionals (finalAttrs.runtimeDeps != [ ]) [
"--suffix"
"PATH"
":"
(lib.makeBinPath finalAttrs.runtimeDeps)
];
generatedWrapperArgs =
# neovimUtils.legacyWrapper adds a `legacyWrapper` attribute to let us know we run in "legacy" mode
lib.optionals (attrs ? legacyWrapper) [
# vim accepts a limited number of commands so we join all the provider ones
"--add-flags"
''--cmd "lua ${providerLuaRc}"''
]
++
lib.optionals
(
finalAttrs.packpathDirs.myNeovimPackages.start != [ ]
|| finalAttrs.packpathDirs.myNeovimPackages.opt != [ ]
)
[
"--add-flags"
''--cmd "set packpath^=${finalPackdir}"''
"--add-flags"
''--cmd "set rtp^=${finalPackdir}"''
]
++ lib.optionals finalAttrs.withRuby [
"--set"
"GEM_HOME"
"${rubyEnv}/${rubyEnv.ruby.gemPath}"
]
++ lib.optionals (finalAttrs.runtimeDeps != [ ]) [
"--suffix"
"PATH"
":"
(lib.makeBinPath finalAttrs.runtimeDeps)
];
providerLuaRc =
let
@@ -201,7 +207,7 @@ let
++ lib.optionals finalAttrs.wrapRc [
"--set-default"
"VIMINIT"
"lua dofile('${writeText "init.lua" rcContent}')"
"lua dofile('${writeText "init.lua" finalAttrs.luaRcContent}')"
]
++ finalAttrs.generatedWrapperArgs;