nix-community.nixvim/lib/builders.nix
Stanislav Asunkin 17e8904992 modules/performance: add performance.byteCompileLua option
* add `performance.byteCompileLua.enable` toggle to enable or disable
  all byte compiling features
* add `performance.byteCompileLua.initLua` toggle to enable or
  disable byte compiling of init.lua
* add `writeByteCompiledLua` helper for saving byte compiled lua source
  code to the nix store
* `nixvim-print-init` utility is always pointed to uncompiled init.lua
* add tests
2024-07-31 11:31:40 +00:00

51 lines
993 B
Nix

{ lib, pkgs }:
{
/*
Write a lua file to the nix store, formatted using stylua.
# Type
```
writeLua :: String -> String -> Derivation
```
# Arguments
- [name] The name of the derivation
- [text] The content of the lua file
*/
writeLua =
name: text:
pkgs.runCommand name { inherit text; } ''
echo -n "$text" > "$out"
${lib.getExe pkgs.stylua} \
--no-editorconfig \
--line-endings Unix \
--indent-type Spaces \
--indent-width 4 \
"$out"
'';
/*
Write a byte compiled lua file to the nix store.
# Type
```
writeByteCompiledLua :: String -> String -> Derivation
```
# Arguments
- [name] The name of the derivation
- [text] The content of the lua file
*/
writeByteCompiledLua =
name: text:
pkgs.runCommandLocal name { inherit text; } ''
echo -n "$text" > "$out"
${lib.getExe' pkgs.luajit "luajit"} -bd -- "$out" "$out"
'';
}