neovim: expose runtimeDeps (#368950)

This commit is contained in:
Austin Horstman
2024-12-29 10:00:52 -06:00
committed by GitHub
+27 -26
View File
@@ -123,32 +123,21 @@ let
wrapperArgsStr = if lib.isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs;
generatedWrapperArgs = let
op = acc: normalizedPlugin: acc ++ normalizedPlugin.plugin.runtimeDeps or [];
runtimeDeps = lib.foldl' op [] pluginsNormalized;
binPath = lib.makeBinPath (
lib.optional finalAttrs.withRuby rubyEnv
++ lib.optional finalAttrs.withNodeJs nodejs
++ lib.optionals finalAttrs.autowrapRuntimeDeps runtimeDeps
);
in
# vim accepts a limited number of commands so we join them all
[
"--add-flags" ''--cmd "lua ${providerLuaRc}"''
]
++ lib.optionals (packpathDirs.myNeovimPackages.start != [] || 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 (binPath != "") [
"--suffix" "PATH" ":" binPath
]
;
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)
]
;
providerLuaRc = neovimUtils.generateProviderRc {
inherit (finalAttrs) withPython3 withNodeJs withPerl withRuby;
@@ -182,6 +171,18 @@ let
inherit autoconfigure autowrapRuntimeDeps wrapRc providerLuaRc packpathDirs;
inherit python3Env rubyEnv;
inherit wrapperArgs generatedWrapperArgs;
runtimeDeps = let
op = acc: normalizedPlugin: acc ++ normalizedPlugin.plugin.runtimeDeps or [];
runtimeDeps = lib.foldl' op [] pluginsNormalized;
in
lib.optional finalAttrs.withRuby rubyEnv
++ lib.optional finalAttrs.withNodeJs nodejs
++ lib.optionals finalAttrs.autowrapRuntimeDeps runtimeDeps
;
luaRcContent = rcContent;
# Remove the symlinks created by symlinkJoin which we need to perform
# extra actions upon