1
0
Fork 0
mirror of https://github.com/nix-community/nixvim.git synced 2025-12-16 14:01:10 +01:00

docs: clarify lazyLoad.after behavior and mention luaConfig.post

This commit is contained in:
Zexin Yuan 2025-12-09 15:40:41 +08:00 committed by Gaétan Lepage
parent a2bd97de05
commit 350ead83e2

View file

@ -31,11 +31,21 @@ provider's loading mechanism.
If you are just wanting to store potential configuration without enabling it,
you can explicitly disable it setting `lazyLoad.enable = false`.
By default, we route the generated setup code to your lazy loading provider, but
it can be overridden by using the `lazyLoad.settings` option.
By default, Nixvim routes the generated setup code (defined in
`plugins.<name>.luaConfig.content`) to your lazy loading provider. For the
`lz.n` backend, this means Nixvim will automatically generate an `after`
function for you, that will be called when a trigger condition is met. You can
override this default by defining `lazyLoad.settings.after` yourself.
For `Lz.n`, the `lazyLoad.settings.after` option contains what it will call when
a trigger condition is met.
> [!NOTE]
> This is an **override**: once you set `lazyLoad.settings.after`, Nixvim will
> use your function instead of the auto-generated one, it will not "extend"
> or "wrap" the default behavior.
>
> If you only need to run some extra Lua **after** the plugin (or colorscheme) has
> been configured, you usually do **not** need to override `lazyLoad.settings.after`.
> Instead, you can use the module's `luaConfig.post` hook, see the plugin's /
> colorscheme's documentation for details
## Configuring Triggers
@ -126,3 +136,29 @@ colorschemes.catppuccin = {
lazyLoad.enable = true;
};
```
To configure special integrations after `catppuccin` has been set up (while
still letting Nixvim manage lazy loading and the default `after`):
```nix
colorscheme = "catppuccin";
colorschemes.catppuccin = {
enable = true;
lazyLoad.enable = true;
# This code runs after catppuccin is setup,
# regardless of whether it was lazy-loaded or not.
luaConfig.post = ''
-- At this point catppuccin is configured, so we can safely
-- derive bufferline highlights or similar settings from it.
require('lz.n').trigger_load("bufferline.nvim")
'';
};
# Configure bufferline to load after catppuccin
plugins.bufferline = {
enable = true;
settings.highlights.__raw = "require('catppuccin.special.bufferline').get_theme()";
lazyLoad.settings.lazy = true; # Lazy load manually
};
```