commit 47680cc0d806775dd9576faaff6303e88b14fb5a (tree)
parent e14db2366160840e0c25f3a467ff984304831e4c
Author: Andrew Kelley <superjoe30@gmail.com>
Date: Mon, 30 Apr 2018 15:10:55 -0400
zig fmt: better multiline string handling
Diffstat:
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/std/zig/parser.zig b/std/zig/parser.zig
@@ -3512,7 +3512,8 @@ pub const Parser = struct {
try stack.append(RenderState { .Text = ";" });
if (var_decl.init_node) |init_node| {
try stack.append(RenderState { .Expression = init_node });
- try stack.append(RenderState { .Text = " = " });
+ const text = if (init_node.id == ast.Node.Id.MultilineStringLiteral) " =" else " = ";
+ try stack.append(RenderState { .Text = text });
}
if (var_decl.align_node) |align_node| {
try stack.append(RenderState { .Text = ")" });
@@ -4063,7 +4064,7 @@ pub const Parser = struct {
try stream.writeByteNTimes(' ', indent + indent_delta);
try stream.print("{}", self.tokenizer.getTokenSlice(t));
}
- try stream.writeByteNTimes(' ', indent + indent_delta);
+ try stream.writeByteNTimes(' ', indent);
},
ast.Node.Id.UndefinedLiteral => {
const undefined_literal = @fieldParentPtr(ast.Node.UndefinedLiteral, "base", base);
diff --git a/std/zig/parser_test.zig b/std/zig/parser_test.zig
@@ -423,10 +423,18 @@ test "zig fmt: functions" {
test "zig fmt: multiline string" {
try testCanonical(
- \\const s =
- \\ \\ something
- \\ \\ something else
+ \\test "" {
+ \\ const s1 =
+ \\ \\one
+ \\ \\two)
+ \\ \\three
+ \\ ;
+ \\ const s2 =
+ \\ c\\one
+ \\ c\\two)
+ \\ c\\three
\\ ;
+ \\}
\\
);
}