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" {
|
test "zig fmt: tuple struct" {
|
||||||
try testCanonical(
|
try testCanonical(
|
||||||
\\const T = struct {
|
\\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" {
|
test "zig fmt: trailing comma in fn parameter list" {
|
||||||
try testCanonical(
|
try testCanonical(
|
||||||
\\pub fn f(
|
\\pub fn f(
|
||||||
|
@ -2512,7 +2512,7 @@ const Space = enum {
|
|||||||
/// In either case, a newline will be inserted afterwards.
|
/// In either case, a newline will be inserted afterwards.
|
||||||
semicolon,
|
semicolon,
|
||||||
/// Skip rendering whitespace and comments. If this is used, the caller
|
/// 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,
|
skip,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2702,7 +2702,7 @@ fn renderIdentifierContents(writer: anytype, bytes: []const u8) !void {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
0x00...('\\' - 1), ('\\' + 1)...0x7f => {
|
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)});
|
try std.fmt.format(writer, "{}", .{std.zig.fmtEscapes(&buf)});
|
||||||
pos += 1;
|
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);
|
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")) {
|
if (ais.disabled_offset != null and mem.eql(u8, comment_content, "zig fmt: on")) {
|
||||||
// Write the source for which formatting was disabled directly
|
// 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];
|
const disabled_source = tree.source[ais.disabled_offset.?..comment_start];
|
||||||
try writeFixingWhitespace(ais.underlying_writer, disabled_source);
|
try writeFixingWhitespace(ais.underlying_writer, disabled_source);
|
||||||
// Write with the canonical single space.
|
// 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")) {
|
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;
|
return index != start;
|
||||||
|
Loading…
Reference in New Issue
Block a user