feat: add new `mkNeovimPackage` method that take modules and extraArgs and return a neovim package

dev
LeMarsu 2025-10-16 02:19:52 +02:00
parent fabe787feb
commit c12a87bfa1
2 changed files with 24 additions and 15 deletions

View File

@ -14,7 +14,7 @@
... ...
}: let }: let
cfg = config.sloth; cfg = config.sloth;
inherit (cfg) lib; sLib = (cfg).lib;
packageModule = types.submodule { packageModule = types.submodule {
options.modules = mkOption { options.modules = mkOption {
@ -26,7 +26,7 @@
buildPackage = { name, value }: { buildPackage = { name, value }: {
inherit name; inherit name;
value = (lib.evalSlothModules {inherit (value) modules;}).neovimPackage; value = sLib.mkNeovimPkg {inherit (value) modules;};
}; };
packagesList = map buildPackage (attrsToList cfg.packages); packagesList = map buildPackage (attrsToList cfg.packages);
in { in {

View File

@ -1,6 +1,6 @@
{pkgs, ...}: let {pkgs, ...}: let
inherit (pkgs) lib; inherit (pkgs) lib;
inherit (lib) concatMap evalModules literalExample mkEnableOption mkOption mkPackageOption optional types; inherit (lib) concatMap evalModules fix literalExample mkEnableOption mkOption mkPackageOption optional types;
initModule = types.submodule { initModule = types.submodule {
options = { options = {
@ -234,15 +234,24 @@
}; };
}; };
}; };
in { in
evalSlothModules = { fix (sLib: {
modules ? [], inherit defaultModule;
specialArgs ? {},
}: let evalSlothModules = {
moduleConfig = evalModules { modules ? [],
specialArgs = specialArgs // {inherit pkgs;}; specialArgs ? {},
modules = modules ++ [defaultModule]; }: let
}; moduleConfig = evalModules {
in specialArgs = specialArgs // {inherit pkgs;};
moduleConfig.config; modules = modules ++ [sLib.defaultModule];
} };
in
moduleConfig.config;
mkNeovimPkg = {
modules ? [],
specialArgs ? {},
}:
(sLib.evalSlothModules {inherit modules specialArgs;}).neovimPackage;
})