From a582fb0a7a5d410bbca69bb261e39cbbe436b4dc Mon Sep 17 00:00:00 2001 From: Gerg-L Date: Sat, 13 Jul 2024 18:03:48 -0400 Subject: [PATCH] modules/default: half size of plugins --- modules/default.nix | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/modules/default.nix b/modules/default.nix index 3cd8d2e4..a500175c 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -33,13 +33,27 @@ inputs: { # build a vim plugin with the given name and arguments # if the plugin is nvim-treesitter, warn the user to use buildTreesitterPlug # instead - buildPlug = {pname, ...} @ args: - assert assertMsg (pname != "nvim-treesitter") "Use buildTreesitterPlug for building nvim-treesitter."; - buildVimPlugin (args - // { - version = "master"; - src = getAttr ("plugin-" + pname) inputs; - }); + buildPlug = {pname, ...} @ attrs: let + src = getAttr ("plugin-" + pname) inputs; + in + pkgs.runCommand pname { + inherit src; + version = src.shortRev or src.shortDirtyRev or "dirty"; + } + // attrs + '' + mkdir -p $out + cp -r . $out + ''; + + noBuildPlug = {pname, ...} @ attrs: let + input = getAttr ("plugin-" + pname) inputs; + in + { + version = input.shortRev or input.shortDirtyRev or "dirty"; + outPath = getAttr ("plugin-" + pname) inputs; + } + // attrs; buildTreesitterPlug = grammars: vimPlugins.nvim-treesitter.withPlugins (_: grammars); @@ -53,11 +67,14 @@ inputs: { then (buildTreesitterPlug vimOptions.treesitter.grammars) else if (plug == "flutter-tools-patched") then - (buildPlug { - pname = "flutter-tools"; - patches = [../patches/flutter-tools.patch]; - }) - else (buildPlug {pname = plug;}) + ( + buildPlug + { + pname = "flutter-tools"; + patches = [../patches/flutter-tools.patch]; + } + ) + else noBuildPlug {pname = plug;} ) else plug ))