nix-community.nixvim/lib/modules.nix

49 lines
1.5 KiB
Nix
Raw Normal View History

{
lib,
self,
2024-12-23 11:55:32 +00:00
flake,
}:
2024-09-25 11:01:12 +01:00
let
removed = {
# Removed 2024-09-24
getAssertionMessages = "";
# Removed 2024-09-27
specialArgs = "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`";
2024-09-25 11:01:12 +01:00
};
in
{
# Evaluate nixvim modules, checking warnings and assertions
evalNixvim =
{
modules ? [ ],
extraSpecialArgs ? { },
}:
# Ensure a suitable `lib` is used
# TODO: offer a lib overlay that end-users could use to apply nixvim's extensions to their own `lib`
assert lib.assertMsg (extraSpecialArgs ? lib -> extraSpecialArgs.lib ? nixvim) ''
Nixvim requires a lib that includes some custom extensions, however the `lib` from `specialArgs` does not have a `nixvim` attr.
Remove `lib` from nixvim's `specialArgs` or ensure you apply nixvim's extensions to your `lib`.'';
lib.evalModules {
modules = modules ++ [
../modules/top-level
2024-12-23 11:55:32 +00:00
{
_file = "<nixvim-flake>";
flake = lib.mkOptionDefault flake;
2024-12-23 11:55:32 +00:00
}
];
2024-09-25 11:01:12 +01:00
specialArgs = {
modulesPath = ../modules;
2024-09-25 11:01:12 +01:00
# TODO: deprecate `helpers`
helpers = self;
} // extraSpecialArgs;
};
}
2024-09-25 11:01:12 +01:00
// lib.mapAttrs (
name: msg:
throw ("`modules.${name}` has been removed." + lib.optionalString (msg != "") (" " + msg))
) removed