| author | |
| committer | |
| log | d21a1922eb5d76b9b0d0611eaeb42c91f83234ab |
| tree | 497da8a656b975bf083a3d3acff63610e4a657ae |
| parent | 8dfa66fee30fa6fa9a7e22780d71be2253eabb21 |
closes #1030
closes #10335 files changed, 70 insertions(+), 2 deletions(-)
std/special/compiler_rt/udivmoddi4_test.zig+2| ... | ... | @@ -1,3 +1,5 @@ |
| 1 | // Disable formatting to avoid unnecessary source repository bloat. | |
| 2 | // zig fmt: off | |
| 1 | 3 | const __udivmoddi4 = @import("udivmoddi4.zig").__udivmoddi4; |
| 2 | 4 | const assert = @import("std").debug.assert; |
| 3 | 5 |
std/special/compiler_rt/udivmodti4_test.zig+2| ... | ... | @@ -1,3 +1,5 @@ |
| 1 | // Disable formatting to avoid unnecessary source repository bloat. | |
| 2 | // zig fmt: off | |
| 1 | 3 | const __udivmodti4 = @import("udivmodti4.zig").__udivmodti4; |
| 2 | 4 | const assert = @import("std").debug.assert; |
| 3 | 5 |
std/zig/parser_test.zig+26| ... | ... | @@ -1,3 +1,29 @@ |
| 1 | test "zig fmt: comment to disable/enable zig fmt first" { | |
| 2 | try testCanonical( | |
| 3 | \\// Test trailing comma syntax | |
| 4 | \\// zig fmt: off | |
| 5 | \\ | |
| 6 | \\const struct_trailing_comma = struct { x: i32, y: i32, }; | |
| 7 | ); | |
| 8 | } | |
| 9 | ||
| 10 | test "zig fmt: comment to disable/enable zig fmt" { | |
| 11 | try testTransform( | |
| 12 | \\const a = b; | |
| 13 | \\// zig fmt: off | |
| 14 | \\const c = d; | |
| 15 | \\// zig fmt: on | |
| 16 | \\const e = f; | |
| 17 | , | |
| 18 | \\const a = b; | |
| 19 | \\// zig fmt: off | |
| 20 | \\const c = d; | |
| 21 | \\// zig fmt: on | |
| 22 | \\const e = f; | |
| 23 | \\ | |
| 24 | ); | |
| 25 | } | |
| 26 | ||
| 1 | 27 | test "zig fmt: pointer of unknown length" { |
| 2 | 28 | try testCanonical( |
| 3 | 29 | \\fn foo(ptr: [*]u8) void {} |
std/zig/render.zig+39-2| ... | ... | @@ -82,8 +82,45 @@ fn renderRoot( |
| 82 | 82 | |
| 83 | 83 | var start_col: usize = 0; |
| 84 | 84 | var it = tree.root_node.decls.iterator(0); |
| 85 | while (it.next()) |decl| { | |
| 86 | try renderTopLevelDecl(allocator, stream, tree, 0, &start_col, decl.*); | |
| 85 | while (true) { | |
| 86 | var decl = (it.next() ?? return).*; | |
| 87 | // look for zig fmt: off comment | |
| 88 | var start_token_index = decl.firstToken(); | |
| 89 | zig_fmt_loop: while (start_token_index != 0) { | |
| 90 | start_token_index -= 1; | |
| 91 | const start_token = tree.tokens.at(start_token_index); | |
| 92 | switch (start_token.id) { | |
| 93 | Token.Id.LineComment => {}, | |
| 94 | Token.Id.DocComment => continue, | |
| 95 | else => break, | |
| 96 | } | |
| 97 | if (mem.eql(u8, mem.trim(u8, tree.tokenSlicePtr(start_token)[2..], " "), "zig fmt: off")) { | |
| 98 | var end_token_index = start_token_index; | |
| 99 | while (true) { | |
| 100 | end_token_index += 1; | |
| 101 | const end_token = tree.tokens.at(end_token_index); | |
| 102 | switch (end_token.id) { | |
| 103 | Token.Id.LineComment => {}, | |
| 104 | Token.Id.Eof => { | |
| 105 | const start = tree.tokens.at(start_token_index + 1).start; | |
| 106 | try stream.write(tree.source[start..]); | |
| 107 | return; | |
| 108 | }, | |
| 109 | else => continue, | |
| 110 | } | |
| 111 | if (mem.eql(u8, mem.trim(u8, tree.tokenSlicePtr(end_token)[2..], " "), "zig fmt: on")) { | |
| 112 | const start = tree.tokens.at(start_token_index + 1).start; | |
| 113 | try stream.print("{}\n", tree.source[start..end_token.end]); | |
| 114 | while (tree.tokens.at(decl.firstToken()).start < end_token.end) { | |
| 115 | decl = (it.next() ?? return).*; | |
| 116 | } | |
| 117 | break :zig_fmt_loop; | |
| 118 | } | |
| 119 | } | |
| 120 | } | |
| 121 | } | |
| 122 | ||
| 123 | try renderTopLevelDecl(allocator, stream, tree, 0, &start_col, decl); | |
| 87 | 124 | if (it.peek()) |next_decl| { |
| 88 | 125 | try renderExtraNewline(tree, stream, &start_col, next_decl.*); |
| 89 | 126 | } |
test/cases/syntax.zig+1| ... | ... | @@ -1,4 +1,5 @@ |
| 1 | 1 | // Test trailing comma syntax |
| 2 | // zig fmt: off | |
| 2 | 3 | |
| 3 | 4 | const struct_trailing_comma = struct { x: i32, y: i32, }; |
| 4 | 5 | const struct_no_comma = struct { x: i32, y: i32 }; |