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
fix (sLib: {
inherit defaultModule;
evalSlothModules = { evalSlothModules = {
modules ? [], modules ? [],
specialArgs ? {}, specialArgs ? {},
}: let }: let
moduleConfig = evalModules { moduleConfig = evalModules {
specialArgs = specialArgs // {inherit pkgs;}; specialArgs = specialArgs // {inherit pkgs;};
modules = modules ++ [defaultModule]; modules = modules ++ [sLib.defaultModule];
}; };
in in
moduleConfig.config; moduleConfig.config;
}
mkNeovimPkg = {
modules ? [],
specialArgs ? {},
}:
(sLib.evalSlothModules {inherit modules specialArgs;}).neovimPackage;
})