2022-11-18 00:17:19 +03:00
|
|
|
# nix2lua
|
|
|
|
|
2022-11-19 04:41:28 +03:00
|
|
|
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](https://git.pleshevski.ru/mynix/neovim).
|
|
|
|
|
2022-11-19 04:46:37 +03:00
|
|
|
# Installation
|
2022-11-19 04:41:28 +03:00
|
|
|
|
|
|
|
Add nix2lua as input to your flake.nix
|
|
|
|
|
|
|
|
```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;
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2022-11-19 04:46:37 +03:00
|
|
|
# References
|
2022-11-19 04:41:28 +03:00
|
|
|
|
|
|
|
`toLua expr`
|
|
|
|
|
|
|
|
> Returns a string containing Lua representation of `expr`. Strings, integers,
|
|
|
|
> floats, booleans, 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 `mkLuaNil` function.
|
|
|
|
>
|
|
|
|
> ```nix
|
2022-11-19 05:03:59 +03:00
|
|
|
> toLua { foo = "bar"; }
|
|
|
|
> toLua [ 10 "foo" [ "bar" ] ]
|
2022-11-19 04:41:28 +03:00
|
|
|
> ```
|
|
|
|
|
|
|
|
`mkLuaNil expr`
|
|
|
|
|
|
|
|
> Creates a type that will mapped by the `toLua` as `nil`
|
|
|
|
>
|
|
|
|
> ```nix
|
2022-11-19 05:03:59 +03:00
|
|
|
> toLua mkLuaNil
|
2022-11-19 04:41:28 +03:00
|
|
|
> ```
|
|
|
|
|
|
|
|
`mkLuaRaw expr`
|
|
|
|
|
|
|
|
> Creates a type that instructs `toLua` not to change the passed expression
|
|
|
|
> `expr`.
|
|
|
|
>
|
|
|
|
> ```nix
|
2022-11-19 05:03:59 +03:00
|
|
|
> toLua (mkLuaRaw "require('bar').baz")
|
2022-11-19 04:41:28 +03:00
|
|
|
> ```
|
|
|
|
|
|
|
|
`mkNamedField name expr`
|
|
|
|
|
|
|
|
> Creates a type that represents a named field in the lua table. This type
|
|
|
|
> cannot exist outside of a list or set.
|
|
|
|
>
|
|
|
|
> This is usefull to create table with some named fields.
|
|
|
|
>
|
|
|
|
> ```nix
|
|
|
|
> toLua [
|
|
|
|
> "foo"
|
|
|
|
> (mkNamedField "bar" "baz")
|
2022-11-19 05:03:59 +03:00
|
|
|
> ]
|
2022-11-19 04:41:28 +03:00
|
|
|
> ```
|
2022-11-19 04:46:37 +03:00
|
|
|
|
|
|
|
# License
|
|
|
|
|
|
|
|
GNU General Public License v3.0 or later
|
|
|
|
|
|
|
|
See [COPYING](./COPYING) to see the full text.
|