Commit 2f4291af authored by Matthieu C.'s avatar Matthieu C.
Browse files

neovim: expose vimPackage

it is relatively cumbersome to generate the vim package from the list of plugins so expose it so users can generate their own packpathdirs for an unwrapped neovim. I've tested this change with an upcoming home-manager change that makes neovim configuration more standard in the home-manager context
parent e2736880
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -27,7 +27,22 @@ let
        map (x: defaultPlugin // (if (x ? plugin) then x else { plugin = x; })) plugins;


  /* accepts a list of normalized plugins and convert themn
  /**
    accepts a list of normalized plugins and convert them into a vim package

    # Type

    ```
    normalizedPluginsToVimPackage :: [AttrSet] -> AttrSet
    ```

    # Examples
    :::{.example}

    ```nix
    normalizedPluginsToVimPackage [ { plugin = vim-fugitive; optional = false'} ]
    => { start = [ vim-fugitive ]; opt = []; }
    :::
  */
  normalizedPluginsToVimPackage = normalizedPlugins:
    let
+6 −2
Original line number Diff line number Diff line
@@ -80,10 +80,11 @@ let
    # we call vimrcContent without 'packages' to avoid the init.vim generation
    neovimRcContent' = vimUtils.vimrcContent {
      beforePlugins = "";
      customRC = lib.concatStringsSep "\n" (pluginRC ++ [neovimRcContent]);
      customRC = lib.concatStringsSep "\n" (pluginRC ++ lib.optional (neovimRcContent != null) neovimRcContent);
      packages = null;
    };

    packpathDirs.myNeovimPackages = myVimPackage;
    finalPackdir = neovimUtils.packDir packpathDirs;

    rcContent = ''
@@ -103,7 +104,6 @@ let
      ++ (extraPython3Packages ps)
      ++ (lib.concatMap (f: f ps) pluginPython3Packages));

    packpathDirs.myNeovimPackages = myVimPackage;

    wrapperArgsStr = if lib.isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs;

@@ -240,6 +240,10 @@ let
    preferLocalBuild = true;

    nativeBuildInputs = [ makeWrapper lndir ];

    # A Vim "package", see ':h packages'
    vimPackage = myVimPackage;

    passthru = {
      inherit providerLuaRc packpathDirs;
      unwrapped = neovim-unwrapped;