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

View File

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