mirror of
https://github.com/ziglang/zig.git
synced 2024-11-27 07:32:44 +00:00
zig fmt: omit extra whitespace after last comment before EOF
This commit is contained in:
parent
d2a799c65a
commit
2b7334c3a9
@ -18,6 +18,19 @@ test "zig fmt: transform old for loop syntax to new" {
|
||||
);
|
||||
}
|
||||
|
||||
test "zig fmt: remove extra whitespace at start and end of file with comment between" {
|
||||
try testTransform(
|
||||
\\
|
||||
\\
|
||||
\\// hello
|
||||
\\
|
||||
\\
|
||||
,
|
||||
\\// hello
|
||||
\\
|
||||
);
|
||||
}
|
||||
|
||||
test "zig fmt: tuple struct" {
|
||||
try testCanonical(
|
||||
\\const T = struct {
|
||||
@ -527,17 +540,6 @@ test "zig fmt: allow empty line before commment at start of block" {
|
||||
);
|
||||
}
|
||||
|
||||
test "zig fmt: allow empty line before commment at start of block" {
|
||||
try testCanonical(
|
||||
\\test {
|
||||
\\
|
||||
\\ // foo
|
||||
\\ const x = 42;
|
||||
\\}
|
||||
\\
|
||||
);
|
||||
}
|
||||
|
||||
test "zig fmt: trailing comma in fn parameter list" {
|
||||
try testCanonical(
|
||||
\\pub fn f(
|
||||
|
@ -2512,7 +2512,7 @@ const Space = enum {
|
||||
/// In either case, a newline will be inserted afterwards.
|
||||
semicolon,
|
||||
/// Skip rendering whitespace and comments. If this is used, the caller
|
||||
/// *must* handle handle whitespace and comments manually.
|
||||
/// *must* handle whitespace and comments manually.
|
||||
skip,
|
||||
};
|
||||
|
||||
@ -2702,7 +2702,7 @@ fn renderIdentifierContents(writer: anytype, bytes: []const u8) !void {
|
||||
}
|
||||
},
|
||||
0x00...('\\' - 1), ('\\' + 1)...0x7f => {
|
||||
const buf = [1]u8{@intCast(u8, byte)};
|
||||
const buf = [1]u8{byte};
|
||||
try std.fmt.format(writer, "{}", .{std.zig.fmtEscapes(&buf)});
|
||||
pos += 1;
|
||||
},
|
||||
@ -2782,7 +2782,7 @@ fn renderComments(ais: *Ais, tree: Ast, start: usize, end: usize) Error!bool {
|
||||
const comment_content = mem.trimLeft(u8, trimmed_comment["//".len..], &std.ascii.whitespace);
|
||||
if (ais.disabled_offset != null and mem.eql(u8, comment_content, "zig fmt: on")) {
|
||||
// Write the source for which formatting was disabled directly
|
||||
// to the underlying writer, fixing up invaild whitespace.
|
||||
// to the underlying writer, fixing up invalid whitespace.
|
||||
const disabled_source = tree.source[ais.disabled_offset.?..comment_start];
|
||||
try writeFixingWhitespace(ais.underlying_writer, disabled_source);
|
||||
// Write with the canonical single space.
|
||||
@ -2799,7 +2799,10 @@ fn renderComments(ais: *Ais, tree: Ast, start: usize, end: usize) Error!bool {
|
||||
}
|
||||
|
||||
if (index != start and mem.containsAtLeast(u8, tree.source[index - 1 .. end], 2, "\n")) {
|
||||
try ais.insertNewline();
|
||||
// Don't leave any whitespace at the end of the file
|
||||
if (end != tree.source.len) {
|
||||
try ais.insertNewline();
|
||||
}
|
||||
}
|
||||
|
||||
return index != start;
|
||||
|
Loading…
Reference in New Issue
Block a user