| ... | @@ -439,9 +439,13 @@ fn renderExpression(gpa: *Allocator, ais: *Ais, tree: ast.Tree, node: ast.Node.I | ... | @@ -439,9 +439,13 @@ fn renderExpression(gpa: *Allocator, ais: *Ais, tree: ast.Tree, node: ast.Node.I |
| 439 | const suffix = datas[node]; | 439 | const suffix = datas[node]; |
| 440 | const lbracket = tree.firstToken(suffix.rhs) - 1; | 440 | const lbracket = tree.firstToken(suffix.rhs) - 1; |
| 441 | const rbracket = tree.lastToken(suffix.rhs) + 1; | 441 | const rbracket = tree.lastToken(suffix.rhs) + 1; |
| | 442 | const one_line = tree.tokensOnSameLine(lbracket, rbracket); |
| | 443 | const inner_space = if (one_line) Space.none else Space.newline; |
| 442 | try renderExpression(gpa, ais, tree, suffix.lhs, .none); | 444 | try renderExpression(gpa, ais, tree, suffix.lhs, .none); |
| 443 | try renderToken(ais, tree, lbracket, .none); // [ | 445 | ais.pushIndentNextLine(); |
| 444 | try renderExpression(gpa, ais, tree, suffix.rhs, .none); | 446 | try renderToken(ais, tree, lbracket, inner_space); // [ |
| | 447 | try renderExpression(gpa, ais, tree, suffix.rhs, inner_space); |
| | 448 | ais.popIndent(); |
| 445 | return renderToken(ais, tree, rbracket, space); // ] | 449 | return renderToken(ais, tree, rbracket, space); // ] |
| 446 | }, | 450 | }, |
| 447 | | 451 | |
| ... | @@ -679,7 +683,6 @@ fn renderExpression(gpa: *Allocator, ais: *Ais, tree: ast.Tree, node: ast.Node.I | ... | @@ -679,7 +683,6 @@ fn renderExpression(gpa: *Allocator, ais: *Ais, tree: ast.Tree, node: ast.Node.I |
| 679 | } | 683 | } |
| 680 | } | 684 | } |
| 681 | | 685 | |
| 682 | // TODO: handle comments inside the brackets | | |
| 683 | fn renderArrayType( | 686 | fn renderArrayType( |
| 684 | gpa: *Allocator, | 687 | gpa: *Allocator, |
| 685 | ais: *Ais, | 688 | ais: *Ais, |
| ... | @@ -687,13 +690,18 @@ fn renderArrayType( | ... | @@ -687,13 +690,18 @@ fn renderArrayType( |
| 687 | array_type: ast.full.ArrayType, | 690 | array_type: ast.full.ArrayType, |
| 688 | space: Space, | 691 | space: Space, |
| 689 | ) Error!void { | 692 | ) Error!void { |
| 690 | try renderToken(ais, tree, array_type.ast.lbracket, .none); // lbracket | 693 | const rbracket = tree.firstToken(array_type.ast.elem_type) - 1; |
| 691 | try renderExpression(gpa, ais, tree, array_type.ast.elem_count, .none); | 694 | const one_line = tree.tokensOnSameLine(array_type.ast.lbracket, rbracket); |
| | 695 | const inner_space = if (one_line) Space.none else Space.newline; |
| | 696 | ais.pushIndentNextLine(); |
| | 697 | try renderToken(ais, tree, array_type.ast.lbracket, inner_space); // lbracket |
| | 698 | try renderExpression(gpa, ais, tree, array_type.ast.elem_count, inner_space); |
| 692 | if (array_type.ast.sentinel) |sentinel| { | 699 | if (array_type.ast.sentinel) |sentinel| { |
| 693 | try renderToken(ais, tree, tree.firstToken(sentinel) - 1, .none); // colon | 700 | try renderToken(ais, tree, tree.firstToken(sentinel) - 1, inner_space); // colon |
| 694 | try renderExpression(gpa, ais, tree, sentinel, .none); | 701 | try renderExpression(gpa, ais, tree, sentinel, inner_space); |
| 695 | } | 702 | } |
| 696 | try renderToken(ais, tree, tree.firstToken(array_type.ast.elem_type) - 1, .none); // rbracket | 703 | ais.popIndent(); |
| | 704 | try renderToken(ais, tree, rbracket, .none); // rbracket |
| 697 | return renderExpression(gpa, ais, tree, array_type.ast.elem_type, space); | 705 | return renderExpression(gpa, ais, tree, array_type.ast.elem_type, space); |
| 698 | } | 706 | } |
| 699 | | 707 | |
| ... | @@ -1577,7 +1585,9 @@ fn renderStructInit( | ... | @@ -1577,7 +1585,9 @@ fn renderStructInit( |
| 1577 | try renderExpression(gpa, ais, tree, struct_init.ast.type_expr, .none); // T | 1585 | try renderExpression(gpa, ais, tree, struct_init.ast.type_expr, .none); // T |
| 1578 | } | 1586 | } |
| 1579 | if (struct_init.ast.fields.len == 0) { | 1587 | if (struct_init.ast.fields.len == 0) { |
| | 1588 | ais.pushIndentNextLine(); |
| 1580 | try renderToken(ais, tree, struct_init.ast.lbrace, .none); // lbrace | 1589 | try renderToken(ais, tree, struct_init.ast.lbrace, .none); // lbrace |
| | 1590 | ais.popIndent(); |
| 1581 | return renderToken(ais, tree, struct_init.ast.lbrace + 1, space); // rbrace | 1591 | return renderToken(ais, tree, struct_init.ast.lbrace + 1, space); // rbrace |
| 1582 | } | 1592 | } |
| 1583 | | 1593 | |