aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-04-30 15:10:55 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-04-30 15:10:55 -0400
commit47680cc0d806775dd9576faaff6303e88b14fb5a (patch)
tree5f8ae0353a0ced14cf26bb1ff49a0e926f594071 /std
parente14db2366160840e0c25f3a467ff984304831e4c (diff)
downloadzig-47680cc0d806775dd9576faaff6303e88b14fb5a.tar.gz
zig-47680cc0d806775dd9576faaff6303e88b14fb5a.zip
zig fmt: better multiline string handling
Diffstat (limited to 'std')
-rw-r--r--std/zig/parser.zig5
-rw-r--r--std/zig/parser_test.zig14
2 files changed, 14 insertions, 5 deletions
diff --git a/std/zig/parser.zig b/std/zig/parser.zig
index b5849c3e96..025bd31715 100644
--- 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
index 74a49a70e3..4c238254fa 100644
--- 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
\\ ;
+ \\}
\\
);
}