Helpers
If Nixvim is built using the standalone method, you can access our helpers
as a module arg:
{ helpers, ... }:
{
# Your config
}
If Nixvim is being used as as a home-manager module, a nixos module, or as a dawwin module,
helpers can be accessed via the config.nixvim.helpers
option:
{ config, ... }:
let
inherit (config.nixvim) helpers;
in
{
# Your config
}
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 dooption.__empty = {}
. -
helpers.mkRaw str
: Write the stringstr
as raw lua in the final lua configuration. This is equivalent to{__raw = "lua code";}
. This form can allow to dooption.__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:
(listToUnkeyedAttrs ["a", "b"]) // {foo = "bar";}
Resulting in the following lua:
{"a", "b", [foo] = "bar"}
-
helpers.enableExceptInTests
: Evaluates totrue
, except inmkTestDerivationFromNixvimModule
where it evaluates tofalse
. This allows to skip instantiating plugins that can't be run in tests. -
helpers.toRawKeys attrs
: Convert the keys of the givenattrs
to raw lua.toRawKeys {foo = 1; bar = "hi";}
will translate in lua to:
{[foo] = 1, [bar] = 2,}
Otherwise, the keys of a regular
attrs
will be interpreted as lua string:{['foo'] = 1, ['bar'] = 2,} -- which is the same as {foo = 1, bar = 2,}