zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit c477df98bbddb35e3abb7d88fbe7e250660458b8 (tree)
parent 9014daedbbb0630ee438ab64302dd0e0697759ba
Author: Kendall Condon <goon.pri.low@gmail.com>
Date:   Mon, 28 Jul 2025 14:18:14 -0400

zig fmt: fix tracking of applied indentation

Diffstat:
Mlib/std/zig/Ast/Render.zig | 4++--
Mlib/std/zig/parser_test.zig | 17+++++++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/lib/std/zig/Ast/Render.zig b/lib/std/zig/Ast/Render.zig @@ -3883,8 +3883,8 @@ const AutoIndentingStream = struct { /// Writes ' ' bytes if the current line is empty fn applyIndent(ais: *AutoIndentingStream) Error!void { const current_indent = ais.currentIndent(); - if (ais.current_line_empty and current_indent > 0) { - if (ais.disabled_offset == null) { + if (ais.current_line_empty) { + if (current_indent > 0 and ais.disabled_offset == null) { try ais.underlying_writer.splatByteAll(' ', current_indent); } ais.applied_indent = current_indent; diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig @@ -6676,6 +6676,23 @@ test "zig fmt: doc comments on fn parameters" { ); } +test "zig fmt: proper tracking of indentation" { + try testCanonical( + \\const a = { + \\ {} + \\}; + \\const b = if (x) {}; + \\const c = .{ + \\ { + \\ {} + \\ } // + \\ , + \\ if (x) {}, + \\}; + \\ + ); +} + test "zig fmt: canonicalize stray backslashes in identifiers" { try testTransform( \\const @"\x" = undefined;