diff --git a/pkgs/applications/editors/neovim/utils.nix b/pkgs/applications/editors/neovim/utils.nix index 5f63f2e60df8a..4eeb1701a5d31 100644 --- a/pkgs/applications/editors/neovim/utils.nix +++ b/pkgs/applications/editors/neovim/utils.nix @@ -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 diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index 164146814262d..60049e184ade6 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -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;