43 lines
1.0 KiB
Nix
43 lines
1.0 KiB
Nix
{
|
|
pkgs,
|
|
sloth,
|
|
callModule,
|
|
...
|
|
}: let
|
|
inherit (pkgs) vimUtils;
|
|
inherit (pkgs.lib) fix listToAttrs nameValuePair;
|
|
fs = pkgs.lib.fileset;
|
|
lua = callModule ../lua.nix {};
|
|
|
|
versionLua = version: with lua; renderLua {} (return (lambda [] (return version)));
|
|
luaDefsToLua = luaDefs: with lua; renderLua {} (return luaDefs);
|
|
in
|
|
fix (self: {
|
|
mkSlothPlugin = luaDefs:
|
|
vimUtils.buildVimPlugin {
|
|
inherit (sloth) version;
|
|
pname = "sloth-flake";
|
|
src = fs.toSource {
|
|
root = ../..;
|
|
fileset = ../../lua/sloth-flake;
|
|
};
|
|
nvimRequireCheck = "sloth-flake";
|
|
buildPhase = ''
|
|
dir=lua/sloth-flake
|
|
|
|
cat <<'LUA' > $dir/dependencies.lua
|
|
${luaDefsToLua luaDefs}
|
|
LUA
|
|
|
|
cat <<'LUA' > $dir/version.lua
|
|
${versionLua sloth.version}
|
|
LUA
|
|
'';
|
|
};
|
|
|
|
mkPluginLuaDefinitions = plugins: let
|
|
extractDef = plugin: nameValuePair plugin.pluginName plugin.luaDefinition;
|
|
in
|
|
listToAttrs (map extractDef plugins);
|
|
})
|