@@ -393,15 +393,21 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind
393
393
var it = call_info .params .iterator (0 );
394
394
while (true ) {
395
395
const param_node = ?? it .next ();
396
- try stream .writeByteNTimes (' ' , new_indent );
396
+
397
+ const param_node_new_indent = if (param_node .* .id == ast .Node .Id .MultilineStringLiteral ) blk : {
398
+ break :blk indent ;
399
+ } else blk : {
400
+ try stream .writeByteNTimes (' ' , new_indent );
401
+ break :blk new_indent ;
402
+ };
397
403
398
404
if (it .peek ()) | next_node | {
399
- try renderExpression (allocator , stream , tree , new_indent , param_node .* , Space .None );
405
+ try renderExpression (allocator , stream , tree , param_node_new_indent , param_node .* , Space .None );
400
406
const comma = tree .nextToken (param_node .* .lastToken ());
401
407
try renderToken (tree , stream , comma , new_indent , Space .Newline ); // ,
402
408
try renderExtraNewline (tree , stream , next_node .* );
403
409
} else {
404
- try renderTrailingComma (allocator , stream , tree , new_indent , param_node .* , Space .Newline );
410
+ try renderTrailingComma (allocator , stream , tree , param_node_new_indent , param_node .* , Space .Newline );
405
411
try stream .writeByteNTimes (' ' , indent );
406
412
try renderToken (tree , stream , suffix_op .rtoken , indent , space );
407
413
return ;
@@ -1502,7 +1508,13 @@ fn renderToken(tree: &ast.Tree, stream: var, token_index: ast.TokenIndex, indent
1502
1508
if (next_token .id != Token .Id .LineComment ) {
1503
1509
switch (space ) {
1504
1510
Space .None , Space .NoNewline , Space .NoIndent = > return ,
1505
- Space .Newline = > return stream .write ("\n " ),
1511
+ Space .Newline = > {
1512
+ if (next_token .id == Token .Id .MultilineStringLiteralLine ) {
1513
+ return ;
1514
+ } else {
1515
+ return stream .write ("\n " );
1516
+ }
1517
+ },
1506
1518
Space .Space = > return stream .writeByte (' ' ),
1507
1519
Space .NoComment = > unreachable ,
1508
1520
}
@@ -1526,7 +1538,13 @@ fn renderToken(tree: &ast.Tree, stream: var, token_index: ast.TokenIndex, indent
1526
1538
};
1527
1539
try stream .writeByteNTimes (' ' , next_line_indent );
1528
1540
},
1529
- Space .Newline , Space .NoIndent = > try stream .write ("\n " ),
1541
+ Space .Newline , Space .NoIndent = > {
1542
+ if (next_token .id == Token .Id .MultilineStringLiteralLine ) {
1543
+ return ;
1544
+ } else {
1545
+ return stream .write ("\n " );
1546
+ }
1547
+ },
1530
1548
Space .NoNewline = > {},
1531
1549
Space .NoComment = > unreachable ,
1532
1550
}
@@ -1547,7 +1565,13 @@ fn renderToken(tree: &ast.Tree, stream: var, token_index: ast.TokenIndex, indent
1547
1565
next_token = tree .tokens .at (token_index + offset );
1548
1566
if (next_token .id != Token .Id .LineComment ) {
1549
1567
switch (space ) {
1550
- Space .Newline , Space .NoIndent = > try stream .writeByte ('\n ' ),
1568
+ Space .Newline , Space .NoIndent = > {
1569
+ if (next_token .id == Token .Id .MultilineStringLiteralLine ) {
1570
+ return ;
1571
+ } else {
1572
+ return stream .write ("\n " );
1573
+ }
1574
+ },
1551
1575
Space .None , Space .Space = > {
1552
1576
try stream .writeByte ('\n ' );
1553
1577
0 commit comments