Skip to content

Commit ddfe03f

Browse files
committed
zig fmt: fix extra whitespace in StructInit with multiline strings
68d2f68 introduced special handling for StructInit fields containing multiline strings to prevent inserting whitespace after =. However, this logic didn't handle cases without a trailing comma, which resulted in unwanted trailing whitespace.
1 parent afdd043 commit ddfe03f

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

lib/std/zig/Ast/Render.zig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2056,7 +2056,8 @@ fn renderStructInit(
20562056
const init_token = tree.firstToken(field_init);
20572057
try renderToken(r, init_token - 3, .none); // .
20582058
try renderIdentifier(r, init_token - 2, .space, .eagerly_unquote); // name
2059-
try renderToken(r, init_token - 1, .space); // =
2059+
const space_after_equal: Space = if (tree.nodeTag(field_init) == .multiline_string_literal) .none else .space;
2060+
try renderToken(r, init_token - 1, space_after_equal); // =
20602061
try renderExpressionFixup(r, field_init, .comma_space);
20612062
}
20622063
}

lib/std/zig/parser_test.zig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5719,6 +5719,16 @@ test "zig fmt: no space before newline before multiline string" {
57195719
\\ ,
57205720
\\ };
57215721
\\ _ = s2;
5722+
\\ const s3 = .{ .text =
5723+
\\ \\hello
5724+
\\ \\world
5725+
\\ , .comment = "test" };
5726+
\\ _ = s3;
5727+
\\ const s4 = .{ .comment = "test", .text =
5728+
\\ \\hello
5729+
\\ \\world
5730+
\\ };
5731+
\\ _ = s4;
57225732
\\}
57235733
\\
57245734
);

0 commit comments

Comments
 (0)