mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
lib/options: added mkLazyLoadOption
This commit is contained in:
parent
301868d380
commit
6ed719dba8
2 changed files with 109 additions and 0 deletions
|
@ -66,6 +66,7 @@ lib.fix (
|
|||
defaultNullOpts
|
||||
mkCompositeOption
|
||||
mkCompositeOption'
|
||||
mkLazyLoadOption
|
||||
mkNullOrLua
|
||||
mkNullOrLua'
|
||||
mkNullOrLuaFn
|
||||
|
|
108
lib/options.nix
108
lib/options.nix
|
@ -333,5 +333,113 @@ rec {
|
|||
else
|
||||
example;
|
||||
};
|
||||
|
||||
mkLazyLoadOption =
|
||||
{
|
||||
originalName,
|
||||
lazyLoadDefaults ? { },
|
||||
}:
|
||||
lib.mkOption {
|
||||
description = ''
|
||||
Lazy-load settings for ${originalName}.
|
||||
'';
|
||||
type =
|
||||
let
|
||||
triggerType =
|
||||
with types;
|
||||
oneOf [
|
||||
rawLua
|
||||
str
|
||||
(listOf str)
|
||||
];
|
||||
in
|
||||
types.submodule {
|
||||
options = with defaultNullOpts; {
|
||||
|
||||
enable = lib.mkEnableOption ''
|
||||
lazy-loading for ${originalName}
|
||||
'';
|
||||
|
||||
# Spec loading:
|
||||
enabled = mkStrLuaFnOr types.bool (lazyLoadDefaults.enabledInSpec or null) ''
|
||||
When false, or if the function returns false, then ${originalName} will not be included in the spec.
|
||||
|
||||
Equivalence: lz.n => enabled; lazy.nvim => enabled
|
||||
'';
|
||||
|
||||
priority = mkNullable types.number (lazyLoadDefaults.priority or null) ''
|
||||
Only useful for start plugins (not lazy-loaded) to force loading certain plugins first.
|
||||
|
||||
Equivalence: lz.n => priority; lazy.nvim => priority
|
||||
'';
|
||||
|
||||
# Spec setup
|
||||
# Actions
|
||||
beforeAll = mkLuaFn (lazyLoadDefaults.beforeAll or null) ''
|
||||
Always executed before any plugins are loaded.
|
||||
|
||||
Equivalence: lz.n => beforeAll; lazy.nvim => init
|
||||
'';
|
||||
|
||||
before = mkLuaFn (lazyLoadDefaults.before or null) ''
|
||||
Executed before ${originalName} is loaded.
|
||||
|
||||
Equivalence: lz.n => before; lazy.nvim => None
|
||||
'';
|
||||
|
||||
after = mkLuaFn (lazyLoadDefaults.after or null) ''
|
||||
Executed after ${originalName} is loaded.
|
||||
|
||||
Equivalence: lz.n => after; lazy.nvim => config
|
||||
'';
|
||||
|
||||
# Triggers
|
||||
event = mkNullable triggerType (lazyLoadDefaults.event or null) ''
|
||||
Lazy-load on event. Events can be specified as `BufEnter` or with a pattern like `BufEnter *.lua`
|
||||
|
||||
Equivalence: lz.n => event; lazy.nvim => event
|
||||
'';
|
||||
|
||||
cmd = mkNullable triggerType (lazyLoadDefaults.cmd or null) ''
|
||||
Lazy-load on command.
|
||||
|
||||
Equivalence: lz.n => cmd; lazy.nvim => cmd
|
||||
'';
|
||||
|
||||
ft = mkNullable triggerType (lazyLoadDefaults.ft or null) ''
|
||||
Lazy-load on filetype.
|
||||
|
||||
Equivalence: lz.n => ft; lazy.nvim => ft
|
||||
'';
|
||||
|
||||
keys =
|
||||
mkNullable (types.listOf lib.nixvim.keymaps.mapOptionSubmodule) (lazyLoadDefaults.keys or null)
|
||||
''
|
||||
Lazy-load on key mapping. Use the same format as `config.keymaps`.
|
||||
|
||||
Equivalence: lz.n => keys; lazy.nvim => keys
|
||||
'';
|
||||
|
||||
colorscheme = mkNullable triggerType (lazyLoadDefaults.colorscheme or null) ''
|
||||
Lazy-load on colorscheme.
|
||||
|
||||
Equivalence: lz.n => colorscheme; lazy.nvim => None
|
||||
'';
|
||||
|
||||
extraSettings = mkSettingsOption {
|
||||
description = ''
|
||||
Extra settings to pass to the lazy loader backend.
|
||||
'';
|
||||
example = {
|
||||
dependencies = {
|
||||
__unkeyed-1 = "nvim-lua/plenary.nvim";
|
||||
lazy = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
default = lazyLoadDefaults;
|
||||
};
|
||||
}
|
||||
// removed
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue