| ... | ... | @@ -1341,7 +1341,7 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind |
| 1341 | 1341 | } |
| 1342 | 1342 | |
| 1343 | 1343 | if (if_node.@"else") |@"else"| { |
| 1344 | | try renderExpression(allocator, stream, tree, indent, if_node.body, Space.Space); |
| 1344 | try renderExpression(allocator, stream, tree, indent, if_node.body, Space.SpaceOrOutdent); |
| 1345 | 1345 | return renderExpression(allocator, stream, tree, indent, &@"else".base, space); |
| 1346 | 1346 | } else { |
| 1347 | 1347 | return renderExpression(allocator, stream, tree, indent, if_node.body, space); |
| ... | ... | @@ -1685,8 +1685,8 @@ const Space = enum { |
| 1685 | 1685 | Newline, |
| 1686 | 1686 | Comma, |
| 1687 | 1687 | Space, |
| 1688 | SpaceOrOutdent, |
| 1688 | 1689 | NoNewline, |
| 1689 | | NoIndent, |
| 1690 | 1690 | NoComment, |
| 1691 | 1691 | }; |
| 1692 | 1692 | |
| ... | ... | @@ -1717,7 +1717,7 @@ fn renderToken(tree: &ast.Tree, stream: var, token_index: ast.TokenIndex, indent |
| 1717 | 1717 | |
| 1718 | 1718 | if (next_token.id != Token.Id.LineComment) { |
| 1719 | 1719 | switch (space) { |
| 1720 | | Space.None, Space.NoNewline, Space.NoIndent => return, |
| 1720 | Space.None, Space.NoNewline => return, |
| 1721 | 1721 | Space.Newline => { |
| 1722 | 1722 | if (next_token.id == Token.Id.MultilineStringLiteralLine) { |
| 1723 | 1723 | return; |
| ... | ... | @@ -1725,7 +1725,7 @@ fn renderToken(tree: &ast.Tree, stream: var, token_index: ast.TokenIndex, indent |
| 1725 | 1725 | return stream.write("\n"); |
| 1726 | 1726 | } |
| 1727 | 1727 | }, |
| 1728 | | Space.Space => return stream.writeByte(' '), |
| 1728 | Space.Space, Space.SpaceOrOutdent => return stream.writeByte(' '), |
| 1729 | 1729 | Space.NoComment, Space.Comma => unreachable, |
| 1730 | 1730 | } |
| 1731 | 1731 | } |
| ... | ... | @@ -1756,7 +1756,11 @@ fn renderToken(tree: &ast.Tree, stream: var, token_index: ast.TokenIndex, indent |
| 1756 | 1756 | }; |
| 1757 | 1757 | try stream.writeByteNTimes(' ', next_line_indent); |
| 1758 | 1758 | }, |
| 1759 | | Space.Newline, Space.NoIndent => { |
| 1759 | Space.SpaceOrOutdent => { |
| 1760 | try stream.writeByte('\n'); |
| 1761 | try stream.writeByteNTimes(' ', indent); |
| 1762 | }, |
| 1763 | Space.Newline => { |
| 1760 | 1764 | if (next_token.id == Token.Id.MultilineStringLiteralLine) { |
| 1761 | 1765 | return; |
| 1762 | 1766 | } else { |
| ... | ... | @@ -1783,7 +1787,7 @@ fn renderToken(tree: &ast.Tree, stream: var, token_index: ast.TokenIndex, indent |
| 1783 | 1787 | next_token = tree.tokens.at(token_index + offset); |
| 1784 | 1788 | if (next_token.id != Token.Id.LineComment) { |
| 1785 | 1789 | switch (space) { |
| 1786 | | Space.Newline, Space.NoIndent => { |
| 1790 | Space.Newline => { |
| 1787 | 1791 | if (next_token.id == Token.Id.MultilineStringLiteralLine) { |
| 1788 | 1792 | return; |
| 1789 | 1793 | } else { |
| ... | ... | @@ -1800,6 +1804,10 @@ fn renderToken(tree: &ast.Tree, stream: var, token_index: ast.TokenIndex, indent |
| 1800 | 1804 | }; |
| 1801 | 1805 | try stream.writeByteNTimes(' ', next_line_indent); |
| 1802 | 1806 | }, |
| 1807 | Space.SpaceOrOutdent => { |
| 1808 | try stream.writeByte('\n'); |
| 1809 | try stream.writeByteNTimes(' ', indent); |
| 1810 | }, |
| 1803 | 1811 | Space.NoNewline => {}, |
| 1804 | 1812 | Space.NoComment, Space.Comma => unreachable, |
| 1805 | 1813 | } |