diff --git a/lib/helpers.nix b/lib/helpers.nix index 3a589bce..bb51d142 100644 --- a/lib/helpers.nix +++ b/lib/helpers.nix @@ -1,44 +1,7 @@ -{lib, ...}: -with lib; let - misc = { - listToUnkeyedAttrs = list: - builtins.listToAttrs - (lib.lists.imap0 (idx: lib.nameValuePair "__unkeyed-${toString idx}") list); - - emptyTable = {"__empty" = null;}; - - mkIfNonNull' = x: y: (mkIf (x != null) y); - - mkIfNonNull = x: (mkIfNonNull' x x); - - ifNonNull' = x: y: - if (x == null) - then null - else y; - - mkRaw = r: - if (isString r && (r != "")) - then {__raw = r;} - else null; - - wrapDo = string: '' - do - ${string} - end - ''; - }; - +{lib, ...}: let nixvimTypes = import ./types.nix {inherit lib nixvimOptions;}; - nixvimOptions = import ./options.nix { - inherit lib; - inherit - (misc) - mkIf - mkIfNonNull - mkRaw - ; - inherit nixvimTypes; - }; + nixvimUtils = import ./utils.nix {inherit lib;}; + nixvimOptions = import ./options.nix {inherit lib nixvimTypes nixvimUtils;}; in { maintainers = import ./maintainers.nix; @@ -48,5 +11,5 @@ in inherit (import ./to-lua.nix {inherit lib;}) toLuaObject; inherit nixvimTypes; } - // misc + // nixvimUtils // nixvimOptions diff --git a/lib/options.nix b/lib/options.nix index 36c5d6f3..0c9071db 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -1,11 +1,10 @@ { lib, - mkIf, - mkIfNonNull, - mkRaw, nixvimTypes, + nixvimUtils, }: -with lib; rec { +with lib; +with nixvimUtils; rec { # Creates an option with a nullable type that defaults to null. mkNullOrOption = type: desc: lib.mkOption { diff --git a/lib/utils.nix b/lib/utils.nix new file mode 100644 index 00000000..7777bc8e --- /dev/null +++ b/lib/utils.nix @@ -0,0 +1,28 @@ +{lib}: +with lib; { + listToUnkeyedAttrs = list: + builtins.listToAttrs + (lib.lists.imap0 (idx: lib.nameValuePair "__unkeyed-${toString idx}") list); + + emptyTable = {"__empty" = null;}; + + mkIfNonNull' = x: y: (mkIf (x != null) y); + + mkIfNonNull = x: (mkIfNonNull' x x); + + ifNonNull' = x: y: + if (x == null) + then null + else y; + + mkRaw = r: + if (isString r && (r != "")) + then {__raw = r;} + else null; + + wrapDo = string: '' + do + ${string} + end + ''; +}