diff --git a/lib/helpers.nix b/lib/helpers.nix index ad5a3db3..0115038d 100644 --- a/lib/helpers.nix +++ b/lib/helpers.nix @@ -7,7 +7,7 @@ let nixvimBuilders = import ./builders.nix { inherit lib pkgs; }; nixvimTypes = import ./types.nix { inherit lib nixvimOptions; }; - nixvimUtils = import ./utils.nix { inherit lib _nixvimTests; }; + nixvimUtils = import ./utils.nix { inherit lib nixvimTypes _nixvimTests; }; nixvimOptions = import ./options.nix { inherit lib nixvimTypes nixvimUtils; }; inherit (import ./to-lua.nix { inherit lib; }) toLuaObject; in diff --git a/lib/utils.nix b/lib/utils.nix index 4ca4a4b3..ae82ecac 100644 --- a/lib/utils.nix +++ b/lib/utils.nix @@ -1,4 +1,8 @@ -{ lib, _nixvimTests }: +{ + lib, + nixvimTypes, + _nixvimTests, +}: with lib; { listToUnkeyedAttrs = @@ -98,7 +102,16 @@ with lib; ifNonNull' = x: y: if (x == null) then null else y; - mkRaw = r: if (isString r && (r != "")) then { __raw = r; } else null; + mkRaw = + r: + if r == null || r == "" then + null + else if isString r then + { __raw = r; } + else if nixvimTypes.isRawType r then + r + else + throw "mkRaw: invalid input: ${generators.toPretty { multiline = false; } r}"; wrapDo = string: '' do