diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index 585e9839..a1807388 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -7,9 +7,9 @@ }: let inherit (pkgs) vimPlugins; inherit (lib.trivial) flip; - inherit (builtins) filter isString; + inherit (builtins) filter isString hasAttr getAttr; - getPin = name: ((pkgs.callPackages ../../../npins/sources.nix {}) // config.vim.pluginOverrides).${name}; + getPin = flip getAttr (pkgs.callPackages ../../../npins/sources.nix {}); noBuildPlug = pname: let pin = getPin pname; @@ -54,7 +54,16 @@ buildConfigPlugins = plugins: map (plug: if (isString plug) - then pluginBuilders.${plug} or (noBuildPlug plug) + then + if hasAttr plug config.vim.pluginOverrides + then + (let + plugin = config.vim.pluginOverrides.${plug}; + in + if (lib.isType "flake" plugin) + then plugin // {name = plug;} + else plugin) + else pluginBuilders.${plug} or (noBuildPlug plug) else plug) ( filter (f: f != null) plugins );