mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
lib/plugins: take ownership of modules
utils
These util functions were previously defined in `modules`, but `plugins.utils` is a better home.
This commit is contained in:
parent
ec97297fd5
commit
896f6be694
8 changed files with 45 additions and 38 deletions
|
@ -3,6 +3,7 @@
|
|||
lib,
|
||||
}:
|
||||
{
|
||||
utils = call ./utils.nix { };
|
||||
neovim = call ./neovim.nix { };
|
||||
vim = call ./vim.nix { };
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ let
|
|||
})
|
||||
'';
|
||||
|
||||
luaConfigAtLocation = lib.nixvim.modules.mkConfigAt configLocation cfg.luaConfig.content;
|
||||
luaConfigAtLocation = lib.nixvim.plugins.utils.mkConfigAt configLocation cfg.luaConfig.content;
|
||||
in
|
||||
{
|
||||
meta = {
|
||||
|
@ -139,7 +139,7 @@ let
|
|||
|
||||
# Apply any additional configuration added to `extraConfig`
|
||||
(lib.optionalAttrs (args ? extraConfig) (
|
||||
lib.nixvim.modules.applyExtraConfig {
|
||||
lib.nixvim.plugins.utils.applyExtraConfig {
|
||||
inherit extraConfig cfg opts;
|
||||
}
|
||||
))
|
||||
|
|
|
@ -116,7 +116,7 @@ let
|
|||
colorscheme = lib.mkDefault colorscheme;
|
||||
})
|
||||
(lib.optionalAttrs (args ? extraConfig) (
|
||||
lib.nixvim.modules.applyExtraConfig {
|
||||
lib.nixvim.plugins.utils.applyExtraConfig {
|
||||
inherit extraConfig cfg opts;
|
||||
}
|
||||
))
|
||||
|
|
34
lib/plugins/utils.nix
Normal file
34
lib/plugins/utils.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{ lib }:
|
||||
{
|
||||
|
||||
/**
|
||||
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)
|
||||
];
|
||||
|
||||
mkConfigAt =
|
||||
loc: def:
|
||||
let
|
||||
isOrder = loc._type or null == "order";
|
||||
withOrder = if isOrder then lib.modules.mkOrder loc.priority else lib.id;
|
||||
loc' = lib.toList (if isOrder then loc.content else loc);
|
||||
in
|
||||
lib.setAttrByPath loc' (withOrder def);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue