mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-24 12:45:24 +02:00
lib/modules: add applyExtraConfig
Used for - mkVimPlugin: extraConfig - mkNeovimPlugin: extraConfig - mkLsp: extraConfig - mkLsp: settings - mkExtension (telecsope): extraConfig
This commit is contained in:
parent
c7b7b6481b
commit
63cfc84abe
6 changed files with 69 additions and 14 deletions
|
@ -36,6 +36,28 @@ in
|
|||
helpers = self;
|
||||
} // extraSpecialArgs;
|
||||
};
|
||||
|
||||
/**
|
||||
Apply an `extraConfig` definition, which should produce a `config` definition.
|
||||
As used by `mkVimPlugin` and `mkNeovimPlugin`.
|
||||
|
||||
The result will be wrapped using a `mkIf` definition.
|
||||
*/
|
||||
applyExtraConfig =
|
||||
{
|
||||
extraConfig,
|
||||
cfg,
|
||||
opts,
|
||||
enabled ? cfg.enable or (throw "`enabled` argument not provided and no `cfg.enable` option found."),
|
||||
}:
|
||||
let
|
||||
maybeApply = x: maybeFn: if builtins.isFunction maybeFn then maybeFn x else maybeFn;
|
||||
in
|
||||
lib.pipe extraConfig [
|
||||
(maybeApply cfg)
|
||||
(maybeApply opts)
|
||||
(lib.mkIf enabled)
|
||||
];
|
||||
}
|
||||
// lib.mapAttrs (
|
||||
name: msg:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue