nix2lua/README.md

1.6 KiB

nix2lua

This is a small but functional library that converts your nix configurations into Lua format.

This library was initially designed for my personal Neovim flake.

Installation

Add nix2lua as input to your flake.nix

{
  inputs.nix2lua.url = "git+https://git.pleshevski.ru/mynix/nix2lua";
  
  outputs = { nix2lua }:
    let
      luaTable = nix2lua.lib.toLua {
        foo = "bar";

        nvimTree.settings = {
          open_on_setup = true;
          renderer = {
            group_empty = true;
            full_name = true;
          };
        };
      };
    in luaTable;
}

References

toLua expr

Returns a string containing Lua representation of expr. Strings, integers, floats, boolean, lists and sets are mapped to their Lua equivalents.

Null will be skipped. This is useful when you want to use an optional value. To render nil you should use the LuaNil function.

toLua { foo = "bar"; }
toLua [ 10 "foo" [ "bar" ] ]

LuaNil

Creates a type that will be mapped by the toLua as nil

toLua LuaNil

LuaRaw expr

Creates a type that instructs toLua not to change the passed expression expr.

toLua (mkLuaRaw "require('bar').baz")

mkNamedField name expr

Creates a type that represents a named field in the Lua table. This type cannot exist outside a list or set.

This is useful to create table with some named fields.

toLua [
  "foo"
  (mkNamedField "bar" "baz")
]

License

GNU General Public License v3.0 or later

See COPYING to see the full text.