Commit 3da0a55c authored by Matthieu C.'s avatar Matthieu C.
Browse files

neovim: expose runtimeDeps

it mimics vimPlugins runtimeDeps.
It is useful for the home-manager (HM) usecase where we dont want to use the generated wrapper as is, yet we need some information generated by it, such as the runtime deps.
parent 587b0e8f
Loading
Loading
Loading
Loading
+27 −26
Original line number Diff line number Diff line
@@ -123,30 +123,19 @@ 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
    generatedWrapperArgs =
            [
              # vim accepts a limited number of commands so we join all the provider ones
              "--add-flags" ''--cmd "lua ${providerLuaRc}"''
            ]
          ++ lib.optionals (packpathDirs.myNeovimPackages.start != [] || packpathDirs.myNeovimPackages.opt != []) [
            ++ 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 (binPath != "") [
            "--suffix" "PATH" ":" binPath
            ] ++ lib.optionals (finalAttrs.runtimeDeps != []) [
              "--suffix" "PATH" ":" (lib.makeBinPath finalAttrs.runtimeDeps)
            ]
            ;

@@ -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