2023-02-20 11:42:13 +01:00
|
|
|
{lib, ...}:
|
2024-01-25 15:43:06 +01:00
|
|
|
with lib; let
|
|
|
|
misc = {
|
|
|
|
listToUnkeyedAttrs = list:
|
|
|
|
builtins.listToAttrs
|
|
|
|
(lib.lists.imap0 (idx: lib.nameValuePair "__unkeyed-${toString idx}") list);
|
2023-01-24 01:28:01 +00:00
|
|
|
|
2024-01-25 15:43:06 +01:00
|
|
|
emptyTable = {"__empty" = null;};
|
2023-04-03 11:25:37 +02:00
|
|
|
|
2024-01-25 15:43:06 +01:00
|
|
|
mkIfNonNull' = x: y: (mkIf (x != null) y);
|
2023-10-15 17:31:03 +02:00
|
|
|
|
2024-01-25 15:43:06 +01:00
|
|
|
mkIfNonNull = x: (mkIfNonNull' x x);
|
2023-08-10 14:44:45 +02:00
|
|
|
|
2024-01-25 15:43:06 +01:00
|
|
|
ifNonNull' = x: y:
|
|
|
|
if (x == null)
|
|
|
|
then null
|
|
|
|
else y;
|
2023-01-24 01:28:01 +00:00
|
|
|
|
2024-01-25 15:43:06 +01:00
|
|
|
mkRaw = r:
|
|
|
|
if (isString r && (r != ""))
|
|
|
|
then {__raw = r;}
|
|
|
|
else null;
|
2023-03-10 12:06:32 +01:00
|
|
|
|
2024-01-25 15:43:06 +01:00
|
|
|
wrapDo = string: ''
|
|
|
|
do
|
|
|
|
${string}
|
|
|
|
end
|
|
|
|
'';
|
2023-10-02 15:44:06 +02:00
|
|
|
};
|
2023-02-20 11:42:13 +01:00
|
|
|
|
2024-01-25 15:43:06 +01:00
|
|
|
nixvimTypes = import ./types.nix {inherit lib nixvimOptions;};
|
|
|
|
nixvimOptions = import ./options.nix {
|
|
|
|
inherit lib;
|
|
|
|
inherit
|
|
|
|
(misc)
|
|
|
|
mkIf
|
|
|
|
mkIfNonNull
|
|
|
|
mkRaw
|
|
|
|
;
|
|
|
|
inherit nixvimTypes;
|
2023-10-02 15:44:06 +02:00
|
|
|
};
|
2024-01-25 15:43:06 +01:00
|
|
|
in
|
|
|
|
{
|
|
|
|
maintainers = import ./maintainers.nix;
|
|
|
|
keymaps = import ./keymap-helpers.nix {inherit lib;};
|
|
|
|
autocmd = import ./autocmd-helpers.nix {inherit lib;};
|
|
|
|
vim-plugin = import ./vim-plugin.nix {inherit lib nixvimOptions;};
|
|
|
|
inherit (import ./to-lua.nix {inherit lib;}) toLuaObject;
|
|
|
|
inherit nixvimTypes;
|
|
|
|
}
|
|
|
|
// misc
|
|
|
|
// nixvimOptions
|