| ... | ... | @@ -374,7 +374,42 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind |
| 374 | 374 | try renderExpression(allocator, stream, tree, indent, suffix_op.lhs, Space.None); |
| 375 | 375 | |
| 376 | 376 | const lparen = tree.nextToken(suffix_op.lhs.lastToken()); |
| 377 | | try renderToken(tree, stream, lparen, indent, Space.None); |
| 377 | |
| 378 | if (call_info.params.len == 0) { |
| 379 | try renderToken(tree, stream, lparen, indent, Space.None); |
| 380 | try renderToken(tree, stream, suffix_op.rtoken, indent, space); |
| 381 | return; |
| 382 | } |
| 383 | |
| 384 | const src_has_trailing_comma = blk: { |
| 385 | const maybe_comma = tree.prevToken(suffix_op.rtoken); |
| 386 | break :blk tree.tokens.at(maybe_comma).id == Token.Id.Comma; |
| 387 | }; |
| 388 | |
| 389 | if (src_has_trailing_comma) { |
| 390 | const new_indent = indent + indent_delta; |
| 391 | try renderToken(tree, stream, lparen, new_indent, Space.Newline); |
| 392 | |
| 393 | var it = call_info.params.iterator(0); |
| 394 | while (true) { |
| 395 | const param_node = ??it.next(); |
| 396 | try stream.writeByteNTimes(' ', new_indent); |
| 397 | |
| 398 | if (it.peek()) |next_node| { |
| 399 | try renderExpression(allocator, stream, tree, new_indent, param_node.*, Space.None); |
| 400 | const comma = tree.nextToken(param_node.*.lastToken()); |
| 401 | try renderToken(tree, stream, comma, new_indent, Space.Newline); // , |
| 402 | try renderExtraNewline(tree, stream, next_node.*); |
| 403 | } else { |
| 404 | try renderTrailingComma(allocator, stream, tree, new_indent, param_node.*, Space.Newline); |
| 405 | try stream.writeByteNTimes(' ', indent); |
| 406 | try renderToken(tree, stream, suffix_op.rtoken, indent, space); |
| 407 | return; |
| 408 | } |
| 409 | } |
| 410 | } |
| 411 | |
| 412 | try renderToken(tree, stream, lparen, indent, Space.None); // ( |
| 378 | 413 | |
| 379 | 414 | var it = call_info.params.iterator(0); |
| 380 | 415 | while (it.next()) |param_node| { |
| ... | ... | @@ -385,7 +420,6 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind |
| 385 | 420 | try renderToken(tree, stream, comma, indent, Space.Space); |
| 386 | 421 | } |
| 387 | 422 | } |
| 388 | | |
| 389 | 423 | try renderToken(tree, stream, suffix_op.rtoken, indent, space); |
| 390 | 424 | }, |
| 391 | 425 | |