printAttrs: Force item before determining whether to print multi-line

This commit is contained in:
Robert Hensing 2024-07-14 14:28:21 +02:00
parent ece334b532
commit a0635a80b2
2 changed files with 7 additions and 3 deletions

View File

@ -299,6 +299,9 @@ private:
output << ANSI_NORMAL; output << ANSI_NORMAL;
} }
/**
* @note This may force items.
*/
bool shouldPrettyPrintAttrs(AttrVec & v) bool shouldPrettyPrintAttrs(AttrVec & v)
{ {
if (!options.shouldPrettyPrint() || v.empty()) { if (!options.shouldPrettyPrint() || v.empty()) {
@ -315,6 +318,9 @@ private:
return true; return true;
} }
// It is ok to force the item(s) here, because they will be printed anyway.
state.forceValue(*item, item->determinePos(noPos));
// Pretty-print single-item attrsets only if they contain nested // Pretty-print single-item attrsets only if they contain nested
// structures. // structures.
auto itemType = item->type(); auto itemType = item->type();

View File

@ -2,9 +2,7 @@ Nix <nix version>
Type :? for help. Type :? for help.
Added <number omitted> variables. Added <number omitted> variables.
{ { homepage = "https://example.com"; }
homepage = "https://example.com";
}
{ homepage = "https://example.com"; } { homepage = "https://example.com"; }