mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
lib/util: move docs from lib/index
to doc-comments
Moved all function-specific docs from `docs/lib/index.md` into RFC145 doc-comments. Added `lib.nixvim.lua.toLuaObject` to hold the public docs and serve as a stable impl of `toLua'` in case we decide to change its defaults.
This commit is contained in:
parent
4a272ca5d7
commit
f4a7447d27
4 changed files with 64 additions and 46 deletions
|
@ -65,47 +65,3 @@ This can be achieved using the lib overlay, available via the `<nixvim>.lib.over
|
|||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Common helper functions
|
||||
|
||||
A certain number of helpers are defined that can be useful:
|
||||
|
||||
- `helpers.emptyTable`: An empty lua table `{}` that will be included in the final lua configuration.
|
||||
This is equivalent to `{__empty = {};}`. This form can allow to do `option.__empty = {}`.
|
||||
|
||||
- `helpers.mkRaw str`: Write the string `str` as raw lua in the final lua configuration.
|
||||
This is equivalent to `{__raw = "lua code";}`. This form can allow to do `option.__raw = "lua code"`.
|
||||
|
||||
- `helpers.toLuaObject obj`: Create a string representation of the Nix object. Useful to define your own plugins.
|
||||
|
||||
- `helpers.listToUnkeyedAttrs list`: Transforms a list to an "unkeyed" attribute set.
|
||||
|
||||
This allows to define mixed table/list in lua:
|
||||
|
||||
```nix
|
||||
(listToUnkeyedAttrs ["a" "b"]) // {foo = "bar";}
|
||||
```
|
||||
|
||||
Resulting in the following lua:
|
||||
|
||||
```lua
|
||||
{"a", "b", [foo] = "bar"}
|
||||
```
|
||||
|
||||
- `helpers.enableExceptInTests`: Evaluates to `true`, except in `mkTestDerivationFromNixvimModule`
|
||||
where it evaluates to `false`. This allows to skip instantiating plugins that can't be run in tests.
|
||||
|
||||
- `helpers.toRawKeys attrs`: Convert the keys of the given `attrs` to raw lua.
|
||||
```nix
|
||||
toRawKeys {foo = 1; bar = "hi";}
|
||||
```
|
||||
will translate in lua to:
|
||||
```lua
|
||||
{[foo] = 1, [bar] = 2,}
|
||||
```
|
||||
Otherwise, the keys of a regular `attrs` will be interpreted as lua string:
|
||||
```lua
|
||||
{['foo'] = 1, ['bar'] = 2,}
|
||||
-- which is the same as
|
||||
{foo = 1, bar = 2,}
|
||||
```
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue