| ... | @@ -1263,17 +1263,40 @@ fn renderExpression( | ... | @@ -1263,17 +1263,40 @@ fn renderExpression( |
| 1263 | try renderToken(tree, stream, builtin_call.builtin_token, indent, start_col, Space.None); // @name | 1263 | try renderToken(tree, stream, builtin_call.builtin_token, indent, start_col, Space.None); // @name |
| 1264 | } | 1264 | } |
| 1265 | | 1265 | |
| 1266 | try renderToken(tree, stream, tree.nextToken(builtin_call.builtin_token), indent, start_col, Space.None); // ( | 1266 | const src_params_trailing_comma = blk: { |
| | 1267 | const maybe_comma = tree.prevToken(builtin_call.rparen_token); |
| | 1268 | break :blk tree.tokens.at(maybe_comma).id == .Comma; |
| | 1269 | }; |
| | 1270 | |
| | 1271 | const lparen = tree.nextToken(builtin_call.builtin_token); |
| | 1272 | |
| | 1273 | if (!src_params_trailing_comma) { |
| | 1274 | try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( |
| 1267 | | 1275 | |
| 1268 | var it = builtin_call.params.iterator(0); | 1276 | // render all on one line, no trailing comma |
| 1269 | while (it.next()) |param_node| { | 1277 | var it = builtin_call.params.iterator(0); |
| 1270 | try renderExpression(allocator, stream, tree, indent, start_col, param_node.*, Space.None); | 1278 | while (it.next()) |param_node| { |
| | 1279 | try renderExpression(allocator, stream, tree, indent, start_col, param_node.*, Space.None); |
| | 1280 | // try renderParamDecl(allocator, stream, tree, indent, start_col, param_node.*, Space.None); |
| | 1281 | |
| | 1282 | if (it.peek() != null) { |
| | 1283 | const comma_token = tree.nextToken(param_node.*.lastToken()); |
| | 1284 | try renderToken(tree, stream, comma_token, indent, start_col, Space.Space); // , |
| | 1285 | } |
| | 1286 | } |
| | 1287 | } else { |
| | 1288 | // one param per line |
| | 1289 | const new_indent = indent + indent_delta; |
| | 1290 | try renderToken(tree, stream, lparen, new_indent, start_col, Space.Newline); // ( |
| 1271 | | 1291 | |
| 1272 | if (it.peek() != null) { | 1292 | var it = builtin_call.params.iterator(0); |
| 1273 | const comma_token = tree.nextToken(param_node.*.lastToken()); | 1293 | while (it.next()) |param_node| { |
| 1274 | try renderToken(tree, stream, comma_token, indent, start_col, Space.Space); // , | 1294 | try stream.writeByteNTimes(' ', new_indent); |
| | 1295 | try renderExpression(allocator, stream, tree, indent, start_col, param_node.*, Space.Comma); |
| 1275 | } | 1296 | } |
| | 1297 | try stream.writeByteNTimes(' ', indent); |
| 1276 | } | 1298 | } |
| | 1299 | |
| 1277 | return renderToken(tree, stream, builtin_call.rparen_token, indent, start_col, space); // ) | 1300 | return renderToken(tree, stream, builtin_call.rparen_token, indent, start_col, space); // ) |
| 1278 | }, | 1301 | }, |
| 1279 | | 1302 | |