| ... | @@ -557,11 +557,11 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind | ... | @@ -557,11 +557,11 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind |
| 557 | }; | 557 | }; |
| 558 | | 558 | |
| 559 | | 559 | |
| 560 | const new_indent = indent + indent_delta; | | |
| 561 | try renderToken(tree, stream, lbrace, new_indent, Space.Newline); | | |
| 562 | try stream.writeByteNTimes(' ', new_indent); | | |
| 563 | | | |
| 564 | if (maybe_row_size) |row_size| { | 560 | if (maybe_row_size) |row_size| { |
| | 561 | const new_indent = indent + indent_delta; |
| | 562 | try renderToken(tree, stream, lbrace, new_indent, Space.Newline); |
| | 563 | try stream.writeByteNTimes(' ', new_indent); |
| | 564 | |
| 565 | var it = exprs.iterator(0); | 565 | var it = exprs.iterator(0); |
| 566 | var i: usize = 0; | 566 | var i: usize = 0; |
| 567 | while (it.next()) |expr| { | 567 | while (it.next()) |expr| { |
| ... | @@ -597,6 +597,30 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind | ... | @@ -597,6 +597,30 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind |
| 597 | return; | 597 | return; |
| 598 | } | 598 | } |
| 599 | | 599 | |
| | 600 | const src_has_trailing_comma = blk: { |
| | 601 | const maybe_comma = tree.prevToken(suffix_op.rtoken); |
| | 602 | break :blk tree.tokens.at(maybe_comma).id == Token.Id.Comma; |
| | 603 | }; |
| | 604 | if (!src_has_trailing_comma) { |
| | 605 | try renderToken(tree, stream, lbrace, indent, Space.Space); |
| | 606 | var it = exprs.iterator(0); |
| | 607 | while (it.next()) |expr| { |
| | 608 | try renderExpression(allocator, stream, tree, indent, expr.*, Space.None); |
| | 609 | |
| | 610 | if (it.peek()) |next_expr| { |
| | 611 | const comma = tree.nextToken(expr.*.lastToken()); |
| | 612 | try renderToken(tree, stream, comma, indent, Space.Space); // , |
| | 613 | } |
| | 614 | } |
| | 615 | |
| | 616 | try renderToken(tree, stream, suffix_op.rtoken, indent, space); |
| | 617 | return; |
| | 618 | } |
| | 619 | |
| | 620 | const new_indent = indent + indent_delta; |
| | 621 | try renderToken(tree, stream, lbrace, new_indent, Space.Newline); |
| | 622 | try stream.writeByteNTimes(' ', new_indent); |
| | 623 | |
| 600 | var it = exprs.iterator(0); | 624 | var it = exprs.iterator(0); |
| 601 | while (it.next()) |expr| { | 625 | while (it.next()) |expr| { |
| 602 | | 626 | |