mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 08:35:43 +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
|
@ -10,6 +10,9 @@ let
|
||||||
# Removed 2024-09-27
|
# Removed 2024-09-27
|
||||||
specialArgs = "It has been integrated into `evalNixvim`";
|
specialArgs = "It has been integrated into `evalNixvim`";
|
||||||
specialArgsWith = "It has been integrated into `evalNixvim`";
|
specialArgsWith = "It has been integrated into `evalNixvim`";
|
||||||
|
# Removed 2024-12-18
|
||||||
|
applyExtraConfig = "It has been moved to `lib.plugins.utils`";
|
||||||
|
mkConfigAt = "It has been moved to `lib.plugins.utils`";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -45,37 +48,6 @@ in
|
||||||
helpers = self;
|
helpers = self;
|
||||||
} // extraSpecialArgs;
|
} // 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)
|
|
||||||
];
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
// lib.mapAttrs (
|
// lib.mapAttrs (
|
||||||
name: msg:
|
name: msg:
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
lib,
|
lib,
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
utils = call ./utils.nix { };
|
||||||
neovim = call ./neovim.nix { };
|
neovim = call ./neovim.nix { };
|
||||||
vim = call ./vim.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
|
in
|
||||||
{
|
{
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -139,7 +139,7 @@ let
|
||||||
|
|
||||||
# Apply any additional configuration added to `extraConfig`
|
# Apply any additional configuration added to `extraConfig`
|
||||||
(lib.optionalAttrs (args ? extraConfig) (
|
(lib.optionalAttrs (args ? extraConfig) (
|
||||||
lib.nixvim.modules.applyExtraConfig {
|
lib.nixvim.plugins.utils.applyExtraConfig {
|
||||||
inherit extraConfig cfg opts;
|
inherit extraConfig cfg opts;
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
|
|
|
@ -116,7 +116,7 @@ let
|
||||||
colorscheme = lib.mkDefault colorscheme;
|
colorscheme = lib.mkDefault colorscheme;
|
||||||
})
|
})
|
||||||
(lib.optionalAttrs (args ? extraConfig) (
|
(lib.optionalAttrs (args ? extraConfig) (
|
||||||
lib.nixvim.modules.applyExtraConfig {
|
lib.nixvim.plugins.utils.applyExtraConfig {
|
||||||
inherit extraConfig cfg opts;
|
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);
|
||||||
|
}
|
|
@ -74,7 +74,7 @@ let
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
lib.nixvim.modules.applyExtraConfig {
|
lib.nixvim.plugins.utils.applyExtraConfig {
|
||||||
inherit extraConfig;
|
inherit extraConfig;
|
||||||
cfg = getPluginAttr config;
|
cfg = getPluginAttr config;
|
||||||
opts = getPluginAttr options;
|
opts = getPluginAttr options;
|
||||||
|
|
|
@ -150,7 +150,7 @@ in
|
||||||
end
|
end
|
||||||
''
|
''
|
||||||
);
|
);
|
||||||
settings = lib.nixvim.modules.applyExtraConfig {
|
settings = lib.nixvim.plugins.utils.applyExtraConfig {
|
||||||
extraConfig = settings;
|
extraConfig = settings;
|
||||||
cfg = cfg.settings;
|
cfg = cfg.settings;
|
||||||
opts = opts.settings;
|
opts = opts.settings;
|
||||||
|
@ -177,7 +177,7 @@ in
|
||||||
) "You can use `${basePluginPathString}.extraOptions.settings` instead.")
|
) "You can use `${basePluginPathString}.extraOptions.settings` instead.")
|
||||||
]
|
]
|
||||||
++ lib.optional (args ? extraConfig) (
|
++ lib.optional (args ? extraConfig) (
|
||||||
lib.nixvim.modules.applyExtraConfig {
|
lib.nixvim.plugins.utils.applyExtraConfig {
|
||||||
inherit
|
inherit
|
||||||
extraConfig
|
extraConfig
|
||||||
cfg
|
cfg
|
||||||
|
|
|
@ -464,7 +464,7 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
testMkLuaConfig = {
|
testMkLuaConfig = {
|
||||||
expr = lib.mapAttrs (_: loc: helpers.modules.mkConfigAt loc "Hello!") {
|
expr = lib.mapAttrs (_: loc: helpers.plugins.utils.mkConfigAt loc "Hello!") {
|
||||||
"simple string" = "foo";
|
"simple string" = "foo";
|
||||||
"simple list" = [
|
"simple list" = [
|
||||||
"foo"
|
"foo"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue