lib/utils: add nestedLiteral and nestedLiteralLua

`nestedLiteral` converts a `literalExpression` into a `toPretty` style
pretty-printer.

`nestedLiteralLua` composes `nestedLiteral` and `literalLua` together.
This commit is contained in:
Matt Sturgeon 2024-11-15 13:45:46 +00:00
parent eb76e62a9b
commit da6e3499d4
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
3 changed files with 88 additions and 0 deletions

View file

@ -331,6 +331,34 @@ let
};
};
# Integration test for nestedLiteral and renderOptionValue
testNestedLiteral_withRenderOptionValue = {
expr =
builtins.mapAttrs
(
_: v:
(lib.options.renderOptionValue {
literal = helpers.nestedLiteral v;
}).text
)
{
empty = "";
sum = "1 + 1";
print = ''lib.mkRaw "print('hi')"'';
};
expected =
builtins.mapAttrs
(_: literal: ''
{
literal = ${literal};
}'')
{
empty = "";
sum = "1 + 1";
print = ''lib.mkRaw "print('hi')"'';
};
};
testUpperFirstChar = {
expr = map helpers.upperFirstChar [
"foo"