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.
1.6 KiB
Accessing Nixvim's functions
If Nixvim is built using the standalone method, you can access our "helpers" as part of the lib
module arg:
{ lib, ... }:
{
# You can use lib.nixvim in your config
fooOption = lib.nixvim.mkRaw "print('hello')";
}
If Nixvim is being used as as a home-manager module, a nixos module, or as a dawwin module,
our "helpers" can be accessed via the config.lib
option:
{ config, ... }:
let
helpers = config.lib.nixvim;
in
{
# Your config
}
Or you can access the extended lib
used in standalone builds via the nixvimLib
module arg:
{ nixvimLib, ... }:
{
# You can use nixvimLib.nixvim in your config
fooOption = nixvimLib.nixvim.mkRaw "print('hello')";
}
This "extended" lib, includes everything normally in lib
, along with some additions from nixvim.
Note: the lib
argument passed to modules is entirely unrelated to the lib
option accessed as config.lib
!
Using a custom lib
with Nixvim
When Nixvim is built in standalone mode, it expects lib
to have Nixvim's extensions.
If you'd like to use a lib
with your own extensions, you must supply it via specialArgs
,
however you must ensure Nixvim's extensions are also present.
This can be achieved using the lib overlay, available via the <nixvim>.lib.overlay
flake output.
# Example flake
{
inputs = {
# ...
};
outputs =
{ nixpkgs, ... }@inputs:
let
myCustomLib = nixpkgs.lib.extend (final: prev: {
# ...
});
myCustomLibForNixvim = myCustomLib.extend inputs.nixvim.lib.overlay;
in
{
# ...
};
}