neovim: move provider configuration to initrc

instead of wrapping arguments when possible.

As an attempt to simplify configuration: instead of having wrapping arguments + an optional neovim configuration
let's always generate a neovim configuration.

The change should be transparent for most users, and require
intervention for users that fulfill both conditions:
- using remote plugins (rare already)
- that set `wrapRc = false` in wrapNeovimUnstable without loading later
  the generated luaRcContent

The fix is then to pass as wrapping arguments the wrapper's generated config via 

(wrapNeovimUnstable neovim-unwrapped { } ).overrideAttrs(oa: { wrapperArgs = oa.wrapperArgs ++ [ ''--cmd "lua dofile('${writeText "init.lua" oa.luaRcContent}')"'' ]; })
This commit is contained in:
teto
2026-03-13 12:38:34 +01:00
parent 56cb0489da
commit 9a25c8c85e
2 changed files with 25 additions and 25 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.
- the `neovim` wrapper sets provider-related configuration in its generated config rather than as wrapper arguments. It should not affect configuration unless you set `wrapRc` to false.
- 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.
+23 -25
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,12 +129,7 @@ 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}"''
]
++
generatedWrapperArgs =
lib.optionals
(
finalAttrs.packpathDirs.myNeovimPackages.start != [ ]
@@ -143,17 +141,17 @@ let
"--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)
];
++ 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 +199,7 @@ let
++ lib.optionals finalAttrs.wrapRc [
"--set-default"
"VIMINIT"
"lua dofile('${writeText "init.lua" rcContent}')"
"lua dofile('${writeText "init.lua" finalAttrs.luaRcContent}')"
]
++ finalAttrs.generatedWrapperArgs;