| ... | @@ -101,6 +101,9 @@ fn renderTopLevelDecl(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index) Error!voi | ... | @@ -101,6 +101,9 @@ fn renderTopLevelDecl(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index) Error!voi |
| 101 | } | 101 | } |
| 102 | | 102 | |
| 103 | fn renderContainerDecl(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: Space) Error!void { | 103 | fn renderContainerDecl(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: Space) Error!void { |
| | 104 | const token_tags = tree.tokens.items(.tag); |
| | 105 | const main_tokens = tree.nodes.items(.main_token); |
| | 106 | const datas = tree.nodes.items(.data); |
| 104 | switch (tree.nodes.items(.tag)[decl]) { | 107 | switch (tree.nodes.items(.tag)[decl]) { |
| 105 | .UsingNamespace, | 108 | .UsingNamespace, |
| 106 | .FnProtoSimple, | 109 | .FnProtoSimple, |
| ... | @@ -112,142 +115,137 @@ fn renderContainerDecl(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: S | ... | @@ -112,142 +115,137 @@ fn renderContainerDecl(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: S |
| 112 | .LocalVarDecl, | 115 | .LocalVarDecl, |
| 113 | .SimpleVarDecl, | 116 | .SimpleVarDecl, |
| 114 | .AlignedVarDecl, | 117 | .AlignedVarDecl, |
| 115 | .TestDecl, | | |
| 116 | .ContainerFieldInit, | 118 | .ContainerFieldInit, |
| 117 | .ContainerFieldAlign, | 119 | .ContainerFieldAlign, |
| 118 | .ContainerField, | 120 | .ContainerField, |
| 119 | => @panic("TODO implement renderContainerDecl"), | 121 | => @panic("TODO implement renderContainerDecl"), |
| 120 | | 122 | |
| 121 | .Comptime => return renderExpression(ais, tree, decl, space), | 123 | // .FnProto => { |
| 122 | | 124 | // const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl); |
| 123 | else => unreachable, | | |
| 124 | } | | |
| 125 | //switch (tag) { | | |
| 126 | // .FnProto => { | | |
| 127 | // const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl); | | |
| 128 | | | |
| 129 | // try renderDocComments(tree, ais, fn_proto, fn_proto.getDocComments()); | | |
| 130 | | 125 | |
| 131 | // if (fn_proto.getBodyNode()) |body_node| { | 126 | // try renderDocComments(ais, tree, fn_proto, fn_proto.getDocComments()); |
| 132 | // try renderExpression(allocator, ais, tree, decl, .Space); | | |
| 133 | // try renderExpression(allocator, ais, tree, body_node, space); | | |
| 134 | // } else { | | |
| 135 | // try renderExpression(allocator, ais, tree, decl, .None); | | |
| 136 | // try renderToken(ais, tree, tree.nextToken(decl.lastToken()), space); | | |
| 137 | // } | | |
| 138 | // }, | | |
| 139 | | | |
| 140 | // .Use => { | | |
| 141 | // const use_decl = @fieldParentPtr(ast.Node.Use, "base", decl); | | |
| 142 | | | |
| 143 | // if (use_decl.visib_token) |visib_token| { | | |
| 144 | // try renderToken(ais, tree, visib_token, .Space); // pub | | |
| 145 | // } | | |
| 146 | // try renderToken(ais, tree, use_decl.use_token, .Space); // usingnamespace | | |
| 147 | // try renderExpression(allocator, ais, tree, use_decl.expr, .None); | | |
| 148 | // try renderToken(ais, tree, use_decl.semicolon_token, space); // ; | | |
| 149 | // }, | | |
| 150 | | 127 | |
| 151 | // .VarDecl => { | 128 | // if (fn_proto.getBodyNode()) |body_node| { |
| 152 | // const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", decl); | 129 | // try renderExpression(ais, tree, decl, .Space); |
| | 130 | // try renderExpression(ais, tree, body_node, space); |
| | 131 | // } else { |
| | 132 | // try renderExpression(ais, tree, decl, .None); |
| | 133 | // try renderToken(ais, tree, tree.nextToken(decl.lastToken()), space); |
| | 134 | // } |
| | 135 | // }, |
| 153 | | 136 | |
| 154 | // try renderDocComments(tree, ais, var_decl, var_decl.getDocComments()); | 137 | // .Use => { |
| 155 | // try renderVarDecl(allocator, ais, tree, var_decl); | 138 | // const use_decl = @fieldParentPtr(ast.Node.Use, "base", decl); |
| 156 | // }, | | |
| 157 | | 139 | |
| 158 | // .TestDecl => { | 140 | // if (use_decl.visib_token) |visib_token| { |
| 159 | // const test_decl = @fieldParentPtr(ast.Node.TestDecl, "base", decl); | 141 | // try renderToken(ais, tree, visib_token, .Space); // pub |
| | 142 | // } |
| | 143 | // try renderToken(ais, tree, use_decl.use_token, .Space); // usingnamespace |
| | 144 | // try renderExpression(ais, tree, use_decl.expr, .None); |
| | 145 | // try renderToken(ais, tree, use_decl.semicolon_token, space); // ; |
| | 146 | // }, |
| | 147 | |
| | 148 | // .VarDecl => { |
| | 149 | // const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", decl); |
| | 150 | |
| | 151 | // try renderDocComments(ais, tree, var_decl, var_decl.getDocComments()); |
| | 152 | // try renderVarDecl(allocator, ais, tree, var_decl); |
| | 153 | // }, |
| | 154 | |
| | 155 | .TestDecl => { |
| | 156 | const test_token = main_tokens[decl]; |
| | 157 | try renderDocComments(ais, tree, test_token); |
| | 158 | try renderToken(ais, tree, test_token, .Space); |
| | 159 | if (token_tags[test_token + 1] == .StringLiteral) { |
| | 160 | try renderToken(ais, tree, test_token + 1, .Space); |
| | 161 | } |
| | 162 | try renderExpression(ais, tree, datas[decl].rhs, space); |
| | 163 | }, |
| 160 | | 164 | |
| 161 | // try renderDocComments(tree, ais, test_decl, test_decl.doc_comments); | 165 | // .ContainerField => { |
| 162 | // try renderToken(ais, tree, test_decl.test_token, .Space); | 166 | // const field = @fieldParentPtr(ast.Node.ContainerField, "base", decl); |
| 163 | // if (test_decl.name) |name| | | |
| 164 | // try renderExpression(allocator, ais, tree, name, .Space); | | |
| 165 | // try renderExpression(allocator, ais, tree, test_decl.body_node, space); | | |
| 166 | // }, | | |
| 167 | | 167 | |
| 168 | // .ContainerField => { | 168 | // try renderDocComments(ais, tree, field, field.doc_comments); |
| 169 | // const field = @fieldParentPtr(ast.Node.ContainerField, "base", decl); | 169 | // if (field.comptime_token) |t| { |
| | 170 | // try renderToken(ais, tree, t, .Space); // comptime |
| | 171 | // } |
| 170 | | 172 | |
| 171 | // try renderDocComments(tree, ais, field, field.doc_comments); | 173 | // const src_has_trailing_comma = blk: { |
| 172 | // if (field.comptime_token) |t| { | 174 | // const maybe_comma = tree.nextToken(field.lastToken()); |
| 173 | // try renderToken(ais, tree, t, .Space); // comptime | 175 | // break :blk tree.token_tags[maybe_comma] == .Comma; |
| 174 | // } | 176 | // }; |
| 175 | | 177 | |
| 176 | // const src_has_trailing_comma = blk: { | 178 | // // The trailing comma is emitted at the end, but if it's not present |
| 177 | // const maybe_comma = tree.nextToken(field.lastToken()); | 179 | // // we still have to respect the specified `space` parameter |
| 178 | // break :blk tree.token_tags[maybe_comma] == .Comma; | 180 | // const last_token_space: Space = if (src_has_trailing_comma) .None else space; |
| 179 | // }; | 181 | |
| 180 | | 182 | // if (field.type_expr == null and field.value_expr == null) { |
| 181 | // // The trailing comma is emitted at the end, but if it's not present | 183 | // try renderToken(ais, tree, field.name_token, last_token_space); // name |
| 182 | // // we still have to respect the specified `space` parameter | 184 | // } else if (field.type_expr != null and field.value_expr == null) { |
| 183 | // const last_token_space: Space = if (src_has_trailing_comma) .None else space; | 185 | // try renderToken(ais, tree, field.name_token, .None); // name |
| 184 | | 186 | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // : |
| 185 | // if (field.type_expr == null and field.value_expr == null) { | 187 | |
| 186 | // try renderToken(ais, tree, field.name_token, last_token_space); // name | 188 | // if (field.align_expr) |align_value_expr| { |
| 187 | // } else if (field.type_expr != null and field.value_expr == null) { | 189 | // try renderExpression(ais, tree, field.type_expr.?, .Space); // type |
| 188 | // try renderToken(ais, tree, field.name_token, .None); // name | 190 | // const lparen_token = tree.prevToken(align_value_expr.firstToken()); |
| 189 | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // : | 191 | // const align_kw = tree.prevToken(lparen_token); |
| 190 | | 192 | // const rparen_token = tree.nextToken(align_value_expr.lastToken()); |
| 191 | // if (field.align_expr) |align_value_expr| { | 193 | // try renderToken(ais, tree, align_kw, .None); // align |
| 192 | // try renderExpression(allocator, ais, tree, field.type_expr.?, .Space); // type | 194 | // try renderToken(ais, tree, lparen_token, .None); // ( |
| 193 | // const lparen_token = tree.prevToken(align_value_expr.firstToken()); | 195 | // try renderExpression(ais, tree, align_value_expr, .None); // alignment |
| 194 | // const align_kw = tree.prevToken(lparen_token); | 196 | // try renderToken(ais, tree, rparen_token, last_token_space); // ) |
| 195 | // const rparen_token = tree.nextToken(align_value_expr.lastToken()); | 197 | // } else { |
| 196 | // try renderToken(ais, tree, align_kw, .None); // align | 198 | // try renderExpression(ais, tree, field.type_expr.?, last_token_space); // type |
| 197 | // try renderToken(ais, tree, lparen_token, .None); // ( | 199 | // } |
| 198 | // try renderExpression(allocator, ais, tree, align_value_expr, .None); // alignment | 200 | // } else if (field.type_expr == null and field.value_expr != null) { |
| 199 | // try renderToken(ais, tree, rparen_token, last_token_space); // ) | 201 | // try renderToken(ais, tree, field.name_token, .Space); // name |
| 200 | // } else { | 202 | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // = |
| 201 | // try renderExpression(allocator, ais, tree, field.type_expr.?, last_token_space); // type | 203 | // try renderExpression(ais, tree, field.value_expr.?, last_token_space); // value |
| 202 | // } | 204 | // } else { |
| 203 | // } else if (field.type_expr == null and field.value_expr != null) { | 205 | // try renderToken(ais, tree, field.name_token, .None); // name |
| 204 | // try renderToken(ais, tree, field.name_token, .Space); // name | 206 | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // : |
| 205 | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // = | 207 | |
| 206 | // try renderExpression(allocator, ais, tree, field.value_expr.?, last_token_space); // value | 208 | // if (field.align_expr) |align_value_expr| { |
| 207 | // } else { | 209 | // try renderExpression(ais, tree, field.type_expr.?, .Space); // type |
| 208 | // try renderToken(ais, tree, field.name_token, .None); // name | 210 | // const lparen_token = tree.prevToken(align_value_expr.firstToken()); |
| 209 | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // : | 211 | // const align_kw = tree.prevToken(lparen_token); |
| 210 | | 212 | // const rparen_token = tree.nextToken(align_value_expr.lastToken()); |
| 211 | // if (field.align_expr) |align_value_expr| { | 213 | // try renderToken(ais, tree, align_kw, .None); // align |
| 212 | // try renderExpression(allocator, ais, tree, field.type_expr.?, .Space); // type | 214 | // try renderToken(ais, tree, lparen_token, .None); // ( |
| 213 | // const lparen_token = tree.prevToken(align_value_expr.firstToken()); | 215 | // try renderExpression(ais, tree, align_value_expr, .None); // alignment |
| 214 | // const align_kw = tree.prevToken(lparen_token); | 216 | // try renderToken(ais, tree, rparen_token, .Space); // ) |
| 215 | // const rparen_token = tree.nextToken(align_value_expr.lastToken()); | 217 | // } else { |
| 216 | // try renderToken(ais, tree, align_kw, .None); // align | 218 | // try renderExpression(ais, tree, field.type_expr.?, .Space); // type |
| 217 | // try renderToken(ais, tree, lparen_token, .None); // ( | 219 | // } |
| 218 | // try renderExpression(allocator, ais, tree, align_value_expr, .None); // alignment | 220 | // try renderToken(ais, tree, tree.prevToken(field.value_expr.?.firstToken()), .Space); // = |
| 219 | // try renderToken(ais, tree, rparen_token, .Space); // ) | 221 | // try renderExpression(ais, tree, field.value_expr.?, last_token_space); // value |
| 220 | // } else { | 222 | // } |
| 221 | // try renderExpression(allocator, ais, tree, field.type_expr.?, .Space); // type | | |
| 222 | // } | | |
| 223 | // try renderToken(ais, tree, tree.prevToken(field.value_expr.?.firstToken()), .Space); // = | | |
| 224 | // try renderExpression(allocator, ais, tree, field.value_expr.?, last_token_space); // value | | |
| 225 | // } | | |
| 226 | | 223 | |
| 227 | // if (src_has_trailing_comma) { | 224 | // if (src_has_trailing_comma) { |
| 228 | // const comma = tree.nextToken(field.lastToken()); | 225 | // const comma = tree.nextToken(field.lastToken()); |
| 229 | // try renderToken(ais, tree, comma, space); | 226 | // try renderToken(ais, tree, comma, space); |
| 230 | // } | 227 | // } |
| 231 | // }, | 228 | // }, |
| | 229 | .Comptime => return renderExpression(ais, tree, decl, space), |
| 232 | | 230 | |
| 233 | // .DocComment => { | 231 | // .DocComment => { |
| 234 | // const comment = @fieldParentPtr(ast.Node.DocComment, "base", decl); | 232 | // const comment = @fieldParentPtr(ast.Node.DocComment, "base", decl); |
| 235 | // const kind = tree.token_tags[comment.first_line]; | 233 | // const kind = tree.token_tags[comment.first_line]; |
| 236 | // try renderToken(ais, tree, comment.first_line, .Newline); | 234 | // try renderToken(ais, tree, comment.first_line, .Newline); |
| 237 | // var tok_i = comment.first_line + 1; | 235 | // var tok_i = comment.first_line + 1; |
| 238 | // while (true) : (tok_i += 1) { | 236 | // while (true) : (tok_i += 1) { |
| 239 | // const tok_id = tree.token_tags[tok_i]; | 237 | // const tok_id = tree.token_tags[tok_i]; |
| 240 | // if (tok_id == kind) { | 238 | // if (tok_id == kind) { |
| 241 | // try renderToken(ais, tree, tok_i, .Newline); | 239 | // try renderToken(ais, tree, tok_i, .Newline); |
| 242 | // } else if (tok_id == .LineComment) { | 240 | // } else if (tok_id == .LineComment) { |
| 243 | // continue; | 241 | // continue; |
| 244 | // } else { | 242 | // } else { |
| 245 | // break; | 243 | // break; |
| 246 | // } | 244 | // } |
| 247 | // } | 245 | // } |
| 248 | // }, | 246 | // }, |
| 249 | // else => unreachable, | 247 | else => unreachable, |
| 250 | //} | 248 | } |
| 251 | } | 249 | } |
| 252 | | 250 | |
| 253 | fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Space) Error!void { | 251 | fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Space) Error!void { |
| ... | @@ -319,9 +317,9 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -319,9 +317,9 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 319 | | 317 | |
| 320 | // try renderToken(ais, tree, defer_node.defer_token, Space.Space); | 318 | // try renderToken(ais, tree, defer_node.defer_token, Space.Space); |
| 321 | // if (defer_node.payload) |payload| { | 319 | // if (defer_node.payload) |payload| { |
| 322 | // try renderExpression(allocator, ais, tree, payload, Space.Space); | 320 | // try renderExpression(ais, tree, payload, Space.Space); |
| 323 | // } | 321 | // } |
| 324 | // return renderExpression(allocator, ais, tree, defer_node.expr, space); | 322 | // return renderExpression(ais, tree, defer_node.expr, space); |
| 325 | //}, | 323 | //}, |
| 326 | .Comptime => { | 324 | .Comptime => { |
| 327 | const comptime_token = tree.nodes.items(.main_token)[node]; | 325 | const comptime_token = tree.nodes.items(.main_token)[node]; |
| ... | @@ -337,7 +335,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -337,7 +335,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 337 | // } else { | 335 | // } else { |
| 338 | // try renderToken(ais, tree, nosuspend_node.nosuspend_token, Space.Space); | 336 | // try renderToken(ais, tree, nosuspend_node.nosuspend_token, Space.Space); |
| 339 | // } | 337 | // } |
| 340 | // return renderExpression(allocator, ais, tree, nosuspend_node.expr, space); | 338 | // return renderExpression(ais, tree, nosuspend_node.expr, space); |
| 341 | //}, | 339 | //}, |
| 342 | | 340 | |
| 343 | //.Suspend => { | 341 | //.Suspend => { |
| ... | @@ -345,7 +343,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -345,7 +343,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 345 | | 343 | |
| 346 | // if (suspend_node.body) |body| { | 344 | // if (suspend_node.body) |body| { |
| 347 | // try renderToken(ais, tree, suspend_node.suspend_token, Space.Space); | 345 | // try renderToken(ais, tree, suspend_node.suspend_token, Space.Space); |
| 348 | // return renderExpression(allocator, ais, tree, body, space); | 346 | // return renderExpression(ais, tree, body, space); |
| 349 | // } else { | 347 | // } else { |
| 350 | // return renderToken(ais, tree, suspend_node.suspend_token, space); | 348 | // return renderToken(ais, tree, suspend_node.suspend_token, space); |
| 351 | // } | 349 | // } |
| ... | @@ -355,7 +353,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -355,7 +353,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 355 | // const infix_op_node = @fieldParentPtr(ast.Node.Catch, "base", base); | 353 | // const infix_op_node = @fieldParentPtr(ast.Node.Catch, "base", base); |
| 356 | | 354 | |
| 357 | // const op_space = Space.Space; | 355 | // const op_space = Space.Space; |
| 358 | // try renderExpression(allocator, ais, tree, infix_op_node.lhs, op_space); | 356 | // try renderExpression(ais, tree, infix_op_node.lhs, op_space); |
| 359 | | 357 | |
| 360 | // const after_op_space = blk: { | 358 | // const after_op_space = blk: { |
| 361 | // const same_line = tree.tokensOnSameLine(infix_op_node.op_token, tree.nextToken(infix_op_node.op_token)); | 359 | // const same_line = tree.tokensOnSameLine(infix_op_node.op_token, tree.nextToken(infix_op_node.op_token)); |
| ... | @@ -365,11 +363,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -365,11 +363,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 365 | // try renderToken(ais, tree, infix_op_node.op_token, after_op_space); | 363 | // try renderToken(ais, tree, infix_op_node.op_token, after_op_space); |
| 366 | | 364 | |
| 367 | // if (infix_op_node.payload) |payload| { | 365 | // if (infix_op_node.payload) |payload| { |
| 368 | // try renderExpression(allocator, ais, tree, payload, Space.Space); | 366 | // try renderExpression(ais, tree, payload, Space.Space); |
| 369 | // } | 367 | // } |
| 370 | | 368 | |
| 371 | // ais.pushIndentOneShot(); | 369 | // ais.pushIndentOneShot(); |
| 372 | // return renderExpression(allocator, ais, tree, infix_op_node.rhs, space); | 370 | // return renderExpression(ais, tree, infix_op_node.rhs, space); |
| 373 | //}, | 371 | //}, |
| 374 | | 372 | |
| 375 | //.Add, | 373 | //.Add, |
| ... | @@ -421,7 +419,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -421,7 +419,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 421 | // .Period, .ErrorUnion, .Range => Space.None, | 419 | // .Period, .ErrorUnion, .Range => Space.None, |
| 422 | // else => Space.Space, | 420 | // else => Space.Space, |
| 423 | // }; | 421 | // }; |
| 424 | // try renderExpression(allocator, ais, tree, infix_op_node.lhs, op_space); | 422 | // try renderExpression(ais, tree, infix_op_node.lhs, op_space); |
| 425 | | 423 | |
| 426 | // const after_op_space = blk: { | 424 | // const after_op_space = blk: { |
| 427 | // const loc = tree.tokenLocation(tree.token_locs[infix_op_node.op_token].end, tree.nextToken(infix_op_node.op_token)); | 425 | // const loc = tree.tokenLocation(tree.token_locs[infix_op_node.op_token].end, tree.nextToken(infix_op_node.op_token)); |
| ... | @@ -434,7 +432,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -434,7 +432,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 434 | // try renderToken(ais, tree, infix_op_node.op_token, after_op_space); | 432 | // try renderToken(ais, tree, infix_op_node.op_token, after_op_space); |
| 435 | // } | 433 | // } |
| 436 | // ais.pushIndentOneShot(); | 434 | // ais.pushIndentOneShot(); |
| 437 | // return renderExpression(allocator, ais, tree, infix_op_node.rhs, space); | 435 | // return renderExpression(ais, tree, infix_op_node.rhs, space); |
| 438 | //}, | 436 | //}, |
| 439 | | 437 | |
| 440 | //.BitNot, | 438 | //.BitNot, |
| ... | @@ -446,7 +444,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -446,7 +444,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 446 | //=> { | 444 | //=> { |
| 447 | // const casted_node = @fieldParentPtr(ast.Node.SimplePrefixOp, "base", base); | 445 | // const casted_node = @fieldParentPtr(ast.Node.SimplePrefixOp, "base", base); |
| 448 | // try renderToken(ais, tree, casted_node.op_token, Space.None); | 446 | // try renderToken(ais, tree, casted_node.op_token, Space.None); |
| 449 | // return renderExpression(allocator, ais, tree, casted_node.rhs, space); | 447 | // return renderExpression(ais, tree, casted_node.rhs, space); |
| 450 | //}, | 448 | //}, |
| 451 | | 449 | |
| 452 | //.Try, | 450 | //.Try, |
| ... | @@ -455,7 +453,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -455,7 +453,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 455 | //=> { | 453 | //=> { |
| 456 | // const casted_node = @fieldParentPtr(ast.Node.SimplePrefixOp, "base", base); | 454 | // const casted_node = @fieldParentPtr(ast.Node.SimplePrefixOp, "base", base); |
| 457 | // try renderToken(ais, tree, casted_node.op_token, Space.Space); | 455 | // try renderToken(ais, tree, casted_node.op_token, Space.Space); |
| 458 | // return renderExpression(allocator, ais, tree, casted_node.rhs, space); | 456 | // return renderExpression(ais, tree, casted_node.rhs, space); |
| 459 | //}, | 457 | //}, |
| 460 | | 458 | |
| 461 | //.ArrayType => { | 459 | //.ArrayType => { |
| ... | @@ -503,7 +501,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -503,7 +501,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 503 | // .LBracket => Space.None, | 501 | // .LBracket => Space.None, |
| 504 | // else => Space.Space, | 502 | // else => Space.Space, |
| 505 | // }; | 503 | // }; |
| 506 | // try renderExpression(allocator, ais, tree, sentinel, sentinel_space); | 504 | // try renderExpression(ais, tree, sentinel, sentinel_space); |
| 507 | // } | 505 | // } |
| 508 | // switch (op_tok_id) { | 506 | // switch (op_tok_id) { |
| 509 | // .Asterisk, .AsteriskAsterisk => {}, | 507 | // .Asterisk, .AsteriskAsterisk => {}, |
| ... | @@ -520,16 +518,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -520,16 +518,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 520 | // try renderToken(ais, tree, align_token, Space.None); // align | 518 | // try renderToken(ais, tree, align_token, Space.None); // align |
| 521 | // try renderToken(ais, tree, lparen_token, Space.None); // ( | 519 | // try renderToken(ais, tree, lparen_token, Space.None); // ( |
| 522 | | 520 | |
| 523 | // try renderExpression(allocator, ais, tree, align_info.node, Space.None); | 521 | // try renderExpression(ais, tree, align_info.node, Space.None); |
| 524 | | 522 | |
| 525 | // if (align_info.bit_range) |bit_range| { | 523 | // if (align_info.bit_range) |bit_range| { |
| 526 | // const colon1 = tree.prevToken(bit_range.start.firstToken()); | 524 | // const colon1 = tree.prevToken(bit_range.start.firstToken()); |
| 527 | // const colon2 = tree.prevToken(bit_range.end.firstToken()); | 525 | // const colon2 = tree.prevToken(bit_range.end.firstToken()); |
| 528 | | 526 | |
| 529 | // try renderToken(ais, tree, colon1, Space.None); // : | 527 | // try renderToken(ais, tree, colon1, Space.None); // : |
| 530 | // try renderExpression(allocator, ais, tree, bit_range.start, Space.None); | 528 | // try renderExpression(ais, tree, bit_range.start, Space.None); |
| 531 | // try renderToken(ais, tree, colon2, Space.None); // : | 529 | // try renderToken(ais, tree, colon2, Space.None); // : |
| 532 | // try renderExpression(allocator, ais, tree, bit_range.end, Space.None); | 530 | // try renderExpression(ais, tree, bit_range.end, Space.None); |
| 533 | | 531 | |
| 534 | // const rparen_token = tree.nextToken(bit_range.end.lastToken()); | 532 | // const rparen_token = tree.nextToken(bit_range.end.lastToken()); |
| 535 | // try renderToken(ais, tree, rparen_token, Space.Space); // ) | 533 | // try renderToken(ais, tree, rparen_token, Space.Space); // ) |
| ... | @@ -544,7 +542,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -544,7 +542,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 544 | // if (ptr_type.ptr_info.volatile_token) |volatile_token| { | 542 | // if (ptr_type.ptr_info.volatile_token) |volatile_token| { |
| 545 | // try renderToken(ais, tree, volatile_token, Space.Space); // volatile | 543 | // try renderToken(ais, tree, volatile_token, Space.Space); // volatile |
| 546 | // } | 544 | // } |
| 547 | // return renderExpression(allocator, ais, tree, ptr_type.rhs, space); | 545 | // return renderExpression(ais, tree, ptr_type.rhs, space); |
| 548 | //}, | 546 | //}, |
| 549 | | 547 | |
| 550 | //.SliceType => { | 548 | //.SliceType => { |
| ... | @@ -553,7 +551,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -553,7 +551,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 553 | // if (slice_type.ptr_info.sentinel) |sentinel| { | 551 | // if (slice_type.ptr_info.sentinel) |sentinel| { |
| 554 | // const colon_token = tree.prevToken(sentinel.firstToken()); | 552 | // const colon_token = tree.prevToken(sentinel.firstToken()); |
| 555 | // try renderToken(ais, tree, colon_token, Space.None); // : | 553 | // try renderToken(ais, tree, colon_token, Space.None); // : |
| 556 | // try renderExpression(allocator, ais, tree, sentinel, Space.None); | 554 | // try renderExpression(ais, tree, sentinel, Space.None); |
| 557 | // try renderToken(ais, tree, tree.nextToken(sentinel.lastToken()), Space.None); // ] | 555 | // try renderToken(ais, tree, tree.nextToken(sentinel.lastToken()), Space.None); // ] |
| 558 | // } else { | 556 | // } else { |
| 559 | // try renderToken(ais, tree, tree.nextToken(slice_type.op_token), Space.None); // ] | 557 | // try renderToken(ais, tree, tree.nextToken(slice_type.op_token), Space.None); // ] |
| ... | @@ -569,16 +567,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -569,16 +567,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 569 | // try renderToken(ais, tree, align_token, Space.None); // align | 567 | // try renderToken(ais, tree, align_token, Space.None); // align |
| 570 | // try renderToken(ais, tree, lparen_token, Space.None); // ( | 568 | // try renderToken(ais, tree, lparen_token, Space.None); // ( |
| 571 | | 569 | |
| 572 | // try renderExpression(allocator, ais, tree, align_info.node, Space.None); | 570 | // try renderExpression(ais, tree, align_info.node, Space.None); |
| 573 | | 571 | |
| 574 | // if (align_info.bit_range) |bit_range| { | 572 | // if (align_info.bit_range) |bit_range| { |
| 575 | // const colon1 = tree.prevToken(bit_range.start.firstToken()); | 573 | // const colon1 = tree.prevToken(bit_range.start.firstToken()); |
| 576 | // const colon2 = tree.prevToken(bit_range.end.firstToken()); | 574 | // const colon2 = tree.prevToken(bit_range.end.firstToken()); |
| 577 | | 575 | |
| 578 | // try renderToken(ais, tree, colon1, Space.None); // : | 576 | // try renderToken(ais, tree, colon1, Space.None); // : |
| 579 | // try renderExpression(allocator, ais, tree, bit_range.start, Space.None); | 577 | // try renderExpression(ais, tree, bit_range.start, Space.None); |
| 580 | // try renderToken(ais, tree, colon2, Space.None); // : | 578 | // try renderToken(ais, tree, colon2, Space.None); // : |
| 581 | // try renderExpression(allocator, ais, tree, bit_range.end, Space.None); | 579 | // try renderExpression(ais, tree, bit_range.end, Space.None); |
| 582 | | 580 | |
| 583 | // const rparen_token = tree.nextToken(bit_range.end.lastToken()); | 581 | // const rparen_token = tree.nextToken(bit_range.end.lastToken()); |
| 584 | // try renderToken(ais, tree, rparen_token, Space.Space); // ) | 582 | // try renderToken(ais, tree, rparen_token, Space.Space); // ) |
| ... | @@ -593,7 +591,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -593,7 +591,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 593 | // if (slice_type.ptr_info.volatile_token) |volatile_token| { | 591 | // if (slice_type.ptr_info.volatile_token) |volatile_token| { |
| 594 | // try renderToken(ais, tree, volatile_token, Space.Space); | 592 | // try renderToken(ais, tree, volatile_token, Space.Space); |
| 595 | // } | 593 | // } |
| 596 | // return renderExpression(allocator, ais, tree, slice_type.rhs, space); | 594 | // return renderExpression(ais, tree, slice_type.rhs, space); |
| 597 | //}, | 595 | //}, |
| 598 | | 596 | |
| 599 | //.ArrayInitializer, .ArrayInitializerDot => { | 597 | //.ArrayInitializer, .ArrayInitializerDot => { |
| ... | @@ -622,7 +620,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -622,7 +620,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 622 | | 620 | |
| 623 | // switch (lhs) { | 621 | // switch (lhs) { |
| 624 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), | 622 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 625 | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), | 623 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 626 | // } | 624 | // } |
| 627 | | 625 | |
| 628 | // if (exprs.len == 0) { | 626 | // if (exprs.len == 0) { |
| ... | @@ -634,7 +632,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -634,7 +632,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 634 | // const expr = exprs[0]; | 632 | // const expr = exprs[0]; |
| 635 | | 633 | |
| 636 | // try renderToken(ais, tree, lbrace, Space.None); | 634 | // try renderToken(ais, tree, lbrace, Space.None); |
| 637 | // try renderExpression(allocator, ais, tree, expr, Space.None); | 635 | // try renderExpression(ais, tree, expr, Space.None); |
| 638 | // return renderToken(ais, tree, rtoken, space); | 636 | // return renderToken(ais, tree, rtoken, space); |
| 639 | // } | 637 | // } |
| 640 | | 638 | |
| ... | @@ -748,7 +746,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -748,7 +746,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 748 | // for (section_exprs) |expr, i| { | 746 | // for (section_exprs) |expr, i| { |
| 749 | // if (i + 1 < section_exprs.len) { | 747 | // if (i + 1 < section_exprs.len) { |
| 750 | // const next_expr = section_exprs[i + 1]; | 748 | // const next_expr = section_exprs[i + 1]; |
| 751 | // try renderExpression(allocator, ais, tree, expr, Space.None); | 749 | // try renderExpression(ais, tree, expr, Space.None); |
| 752 | | 750 | |
| 753 | // const comma = tree.nextToken(expr.*.lastToken()); | 751 | // const comma = tree.nextToken(expr.*.lastToken()); |
| 754 | | 752 | |
| ... | @@ -775,10 +773,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -775,10 +773,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 775 | // } else { | 773 | // } else { |
| 776 | // const maybe_comma = tree.nextToken(expr.*.lastToken()); | 774 | // const maybe_comma = tree.nextToken(expr.*.lastToken()); |
| 777 | // if (tree.token_tags[maybe_comma] == .Comma) { | 775 | // if (tree.token_tags[maybe_comma] == .Comma) { |
| 778 | // try renderExpression(allocator, ais, tree, expr, Space.None); // , | 776 | // try renderExpression(ais, tree, expr, Space.None); // , |
| 779 | // try renderToken(ais, tree, maybe_comma, Space.Newline); // , | 777 | // try renderToken(ais, tree, maybe_comma, Space.Newline); // , |
| 780 | // } else { | 778 | // } else { |
| 781 | // try renderExpression(allocator, ais, tree, expr, Space.Comma); // , | 779 | // try renderExpression(ais, tree, expr, Space.Comma); // , |
| 782 | // } | 780 | // } |
| 783 | // } | 781 | // } |
| 784 | // } | 782 | // } |
| ... | @@ -797,11 +795,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -797,11 +795,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 797 | // for (exprs) |expr, i| { | 795 | // for (exprs) |expr, i| { |
| 798 | // if (i + 1 < exprs.len) { | 796 | // if (i + 1 < exprs.len) { |
| 799 | // const next_expr = exprs[i + 1]; | 797 | // const next_expr = exprs[i + 1]; |
| 800 | // try renderExpression(allocator, ais, tree, expr, Space.None); | 798 | // try renderExpression(ais, tree, expr, Space.None); |
| 801 | // const comma = tree.nextToken(expr.*.lastToken()); | 799 | // const comma = tree.nextToken(expr.*.lastToken()); |
| 802 | // try renderToken(ais, tree, comma, Space.Space); // , | 800 | // try renderToken(ais, tree, comma, Space.Space); // , |
| 803 | // } else { | 801 | // } else { |
| 804 | // try renderExpression(allocator, ais, tree, expr, Space.Space); | 802 | // try renderExpression(ais, tree, expr, Space.Space); |
| 805 | // } | 803 | // } |
| 806 | // } | 804 | // } |
| 807 | | 805 | |
| ... | @@ -835,7 +833,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -835,7 +833,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 835 | // if (field_inits.len == 0) { | 833 | // if (field_inits.len == 0) { |
| 836 | // switch (lhs) { | 834 | // switch (lhs) { |
| 837 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), | 835 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 838 | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), | 836 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 839 | // } | 837 | // } |
| 840 | | 838 | |
| 841 | // { | 839 | // { |
| ... | @@ -886,10 +884,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -886,10 +884,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 886 | | 884 | |
| 887 | // switch (lhs) { | 885 | // switch (lhs) { |
| 888 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), | 886 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 889 | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), | 887 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 890 | // } | 888 | // } |
| 891 | // try renderToken(ais, tree, lbrace, Space.Space); | 889 | // try renderToken(ais, tree, lbrace, Space.Space); |
| 892 | // try renderExpression(allocator, ais, tree, field_inits[0], Space.Space); | 890 | // try renderExpression(ais, tree, field_inits[0], Space.Space); |
| 893 | // return renderToken(ais, tree, rtoken, space); | 891 | // return renderToken(ais, tree, rtoken, space); |
| 894 | // } | 892 | // } |
| 895 | | 893 | |
| ... | @@ -897,18 +895,18 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -897,18 +895,18 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 897 | // // render all on one line, no trailing comma | 895 | // // render all on one line, no trailing comma |
| 898 | // switch (lhs) { | 896 | // switch (lhs) { |
| 899 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), | 897 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 900 | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), | 898 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 901 | // } | 899 | // } |
| 902 | // try renderToken(ais, tree, lbrace, Space.Space); | 900 | // try renderToken(ais, tree, lbrace, Space.Space); |
| 903 | | 901 | |
| 904 | // for (field_inits) |field_init, i| { | 902 | // for (field_inits) |field_init, i| { |
| 905 | // if (i + 1 < field_inits.len) { | 903 | // if (i + 1 < field_inits.len) { |
| 906 | // try renderExpression(allocator, ais, tree, field_init, Space.None); | 904 | // try renderExpression(ais, tree, field_init, Space.None); |
| 907 | | 905 | |
| 908 | // const comma = tree.nextToken(field_init.lastToken()); | 906 | // const comma = tree.nextToken(field_init.lastToken()); |
| 909 | // try renderToken(ais, tree, comma, Space.Space); | 907 | // try renderToken(ais, tree, comma, Space.Space); |
| 910 | // } else { | 908 | // } else { |
| 911 | // try renderExpression(allocator, ais, tree, field_init, Space.Space); | 909 | // try renderExpression(ais, tree, field_init, Space.Space); |
| 912 | // } | 910 | // } |
| 913 | // } | 911 | // } |
| 914 | | 912 | |
| ... | @@ -918,7 +916,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -918,7 +916,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 918 | // { | 916 | // { |
| 919 | // switch (lhs) { | 917 | // switch (lhs) { |
| 920 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), | 918 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 921 | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), | 919 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 922 | // } | 920 | // } |
| 923 | | 921 | |
| 924 | // ais.pushIndentNextLine(); | 922 | // ais.pushIndentNextLine(); |
| ... | @@ -929,14 +927,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -929,14 +927,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 929 | // for (field_inits) |field_init, i| { | 927 | // for (field_inits) |field_init, i| { |
| 930 | // if (i + 1 < field_inits.len) { | 928 | // if (i + 1 < field_inits.len) { |
| 931 | // const next_field_init = field_inits[i + 1]; | 929 | // const next_field_init = field_inits[i + 1]; |
| 932 | // try renderExpression(allocator, ais, tree, field_init, Space.None); | 930 | // try renderExpression(ais, tree, field_init, Space.None); |
| 933 | | 931 | |
| 934 | // const comma = tree.nextToken(field_init.lastToken()); | 932 | // const comma = tree.nextToken(field_init.lastToken()); |
| 935 | // try renderToken(ais, tree, comma, Space.Newline); | 933 | // try renderToken(ais, tree, comma, Space.Newline); |
| 936 | | 934 | |
| 937 | // try renderExtraNewline(tree, ais, next_field_init); | 935 | // try renderExtraNewline(tree, ais, next_field_init); |
| 938 | // } else { | 936 | // } else { |
| 939 | // try renderExpression(allocator, ais, tree, field_init, Space.Comma); | 937 | // try renderExpression(ais, tree, field_init, Space.Comma); |
| 940 | // } | 938 | // } |
| 941 | // } | 939 | // } |
| 942 | // } | 940 | // } |
| ... | @@ -950,7 +948,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -950,7 +948,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 950 | // try renderToken(ais, tree, async_token, Space.Space); | 948 | // try renderToken(ais, tree, async_token, Space.Space); |
| 951 | // } | 949 | // } |
| 952 | | 950 | |
| 953 | // try renderExpression(allocator, ais, tree, call.lhs, Space.None); | 951 | // try renderExpression(ais, tree, call.lhs, Space.None); |
| 954 | | 952 | |
| 955 | // const lparen = tree.nextToken(call.lhs.lastToken()); | 953 | // const lparen = tree.nextToken(call.lhs.lastToken()); |
| 956 | | 954 | |
| ... | @@ -974,7 +972,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -974,7 +972,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 974 | // for (params) |param_node, i| { | 972 | // for (params) |param_node, i| { |
| 975 | // if (i + 1 < params.len) { | 973 | // if (i + 1 < params.len) { |
| 976 | // const next_node = params[i + 1]; | 974 | // const next_node = params[i + 1]; |
| 977 | // try renderExpression(allocator, ais, tree, param_node, Space.None); | 975 | // try renderExpression(ais, tree, param_node, Space.None); |
| 978 | | 976 | |
| 979 | // // Unindent the comma for multiline string literals | 977 | // // Unindent the comma for multiline string literals |
| 980 | // const maybe_multiline_string = param_node.firstToken(); | 978 | // const maybe_multiline_string = param_node.firstToken(); |
| ... | @@ -986,7 +984,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -986,7 +984,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 986 | // try renderToken(ais, tree, comma, Space.Newline); // , | 984 | // try renderToken(ais, tree, comma, Space.Newline); // , |
| 987 | // try renderExtraNewline(tree, ais, next_node); | 985 | // try renderExtraNewline(tree, ais, next_node); |
| 988 | // } else { | 986 | // } else { |
| 989 | // try renderExpression(allocator, ais, tree, param_node, Space.Comma); | 987 | // try renderExpression(ais, tree, param_node, Space.Comma); |
| 990 | // } | 988 | // } |
| 991 | // } | 989 | // } |
| 992 | // } | 990 | // } |
| ... | @@ -1003,7 +1001,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1003,7 +1001,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1003 | // ais.pushIndentOneShot(); | 1001 | // ais.pushIndentOneShot(); |
| 1004 | // } | 1002 | // } |
| 1005 | | 1003 | |
| 1006 | // try renderExpression(allocator, ais, tree, param_node, Space.None); | 1004 | // try renderExpression(ais, tree, param_node, Space.None); |
| 1007 | | 1005 | |
| 1008 | // if (i + 1 < params.len) { | 1006 | // if (i + 1 < params.len) { |
| 1009 | // const comma = tree.nextToken(param_node.lastToken()); | 1007 | // const comma = tree.nextToken(param_node.lastToken()); |
| ... | @@ -1019,7 +1017,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1019,7 +1017,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1019 | // const lbracket = tree.nextToken(suffix_op.lhs.lastToken()); | 1017 | // const lbracket = tree.nextToken(suffix_op.lhs.lastToken()); |
| 1020 | // const rbracket = tree.nextToken(suffix_op.index_expr.lastToken()); | 1018 | // const rbracket = tree.nextToken(suffix_op.index_expr.lastToken()); |
| 1021 | | 1019 | |
| 1022 | // try renderExpression(allocator, ais, tree, suffix_op.lhs, Space.None); | 1020 | // try renderExpression(ais, tree, suffix_op.lhs, Space.None); |
| 1023 | // try renderToken(ais, tree, lbracket, Space.None); // [ | 1021 | // try renderToken(ais, tree, lbracket, Space.None); // [ |
| 1024 | | 1022 | |
| 1025 | // const starts_with_comment = tree.token_tags[lbracket + 1] == .LineComment; | 1023 | // const starts_with_comment = tree.token_tags[lbracket + 1] == .LineComment; |
| ... | @@ -1029,7 +1027,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1029,7 +1027,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1029 | | 1027 | |
| 1030 | // ais.pushIndent(); | 1028 | // ais.pushIndent(); |
| 1031 | // defer ais.popIndent(); | 1029 | // defer ais.popIndent(); |
| 1032 | // try renderExpression(allocator, ais, tree, suffix_op.index_expr, new_space); | 1030 | // try renderExpression(ais, tree, suffix_op.index_expr, new_space); |
| 1033 | // } | 1031 | // } |
| 1034 | // if (starts_with_comment) try ais.maybeInsertNewline(); | 1032 | // if (starts_with_comment) try ais.maybeInsertNewline(); |
| 1035 | // return renderToken(ais, tree, rbracket, space); // ] | 1033 | // return renderToken(ais, tree, rbracket, space); // ] |
| ... | @@ -1037,7 +1035,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1037,7 +1035,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1037 | | 1035 | |
| 1038 | //.Slice => { | 1036 | //.Slice => { |
| 1039 | // const suffix_op = base.castTag(.Slice).?; | 1037 | // const suffix_op = base.castTag(.Slice).?; |
| 1040 | // try renderExpression(allocator, ais, tree, suffix_op.lhs, Space.None); | 1038 | // try renderExpression(ais, tree, suffix_op.lhs, Space.None); |
| 1041 | | 1039 | |
| 1042 | // const lbracket = tree.prevToken(suffix_op.start.firstToken()); | 1040 | // const lbracket = tree.prevToken(suffix_op.start.firstToken()); |
| 1043 | // const dotdot = tree.nextToken(suffix_op.start.lastToken()); | 1041 | // const dotdot = tree.nextToken(suffix_op.start.lastToken()); |
| ... | @@ -1048,16 +1046,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1048,16 +1046,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1048 | // const after_op_space = if (suffix_op.end != null) after_start_space else Space.None; | 1046 | // const after_op_space = if (suffix_op.end != null) after_start_space else Space.None; |
| 1049 | | 1047 | |
| 1050 | // try renderToken(ais, tree, lbracket, Space.None); // [ | 1048 | // try renderToken(ais, tree, lbracket, Space.None); // [ |
| 1051 | // try renderExpression(allocator, ais, tree, suffix_op.start, after_start_space); | 1049 | // try renderExpression(ais, tree, suffix_op.start, after_start_space); |
| 1052 | // try renderToken(ais, tree, dotdot, after_op_space); // .. | 1050 | // try renderToken(ais, tree, dotdot, after_op_space); // .. |
| 1053 | // if (suffix_op.end) |end| { | 1051 | // if (suffix_op.end) |end| { |
| 1054 | // const after_end_space = if (suffix_op.sentinel != null) Space.Space else Space.None; | 1052 | // const after_end_space = if (suffix_op.sentinel != null) Space.Space else Space.None; |
| 1055 | // try renderExpression(allocator, ais, tree, end, after_end_space); | 1053 | // try renderExpression(ais, tree, end, after_end_space); |
| 1056 | // } | 1054 | // } |
| 1057 | // if (suffix_op.sentinel) |sentinel| { | 1055 | // if (suffix_op.sentinel) |sentinel| { |
| 1058 | // const colon = tree.prevToken(sentinel.firstToken()); | 1056 | // const colon = tree.prevToken(sentinel.firstToken()); |
| 1059 | // try renderToken(ais, tree, colon, Space.None); // : | 1057 | // try renderToken(ais, tree, colon, Space.None); // : |
| 1060 | // try renderExpression(allocator, ais, tree, sentinel, Space.None); | 1058 | // try renderExpression(ais, tree, sentinel, Space.None); |
| 1061 | // } | 1059 | // } |
| 1062 | // return renderToken(ais, tree, suffix_op.rtoken, space); // ] | 1060 | // return renderToken(ais, tree, suffix_op.rtoken, space); // ] |
| 1063 | //}, | 1061 | //}, |
| ... | @@ -1065,13 +1063,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1065,13 +1063,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1065 | //.Deref => { | 1063 | //.Deref => { |
| 1066 | // const suffix_op = base.castTag(.Deref).?; | 1064 | // const suffix_op = base.castTag(.Deref).?; |
| 1067 | | 1065 | |
| 1068 | // try renderExpression(allocator, ais, tree, suffix_op.lhs, Space.None); | 1066 | // try renderExpression(ais, tree, suffix_op.lhs, Space.None); |
| 1069 | // return renderToken(ais, tree, suffix_op.rtoken, space); // .* | 1067 | // return renderToken(ais, tree, suffix_op.rtoken, space); // .* |
| 1070 | //}, | 1068 | //}, |
| 1071 | //.UnwrapOptional => { | 1069 | //.UnwrapOptional => { |
| 1072 | // const suffix_op = base.castTag(.UnwrapOptional).?; | 1070 | // const suffix_op = base.castTag(.UnwrapOptional).?; |
| 1073 | | 1071 | |
| 1074 | // try renderExpression(allocator, ais, tree, suffix_op.lhs, Space.None); | 1072 | // try renderExpression(ais, tree, suffix_op.lhs, Space.None); |
| 1075 | // try renderToken(ais, tree, tree.prevToken(suffix_op.rtoken), Space.None); // . | 1073 | // try renderToken(ais, tree, tree.prevToken(suffix_op.rtoken), Space.None); // . |
| 1076 | // return renderToken(ais, tree, suffix_op.rtoken, space); // ? | 1074 | // return renderToken(ais, tree, suffix_op.rtoken, space); // ? |
| 1077 | //}, | 1075 | //}, |
| ... | @@ -1095,7 +1093,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1095,7 +1093,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1095 | // } | 1093 | // } |
| 1096 | // try renderToken(ais, tree, label, Space.Space); // label | 1094 | // try renderToken(ais, tree, label, Space.Space); // label |
| 1097 | // } | 1095 | // } |
| 1098 | // return renderExpression(allocator, ais, tree, maybe_rhs.?, space); | 1096 | // return renderExpression(ais, tree, maybe_rhs.?, space); |
| 1099 | //}, | 1097 | //}, |
| 1100 | | 1098 | |
| 1101 | //.Continue => { | 1099 | //.Continue => { |
| ... | @@ -1114,7 +1112,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1114,7 +1112,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1114 | // const flow_expr = base.castTag(.Return).?; | 1112 | // const flow_expr = base.castTag(.Return).?; |
| 1115 | // if (flow_expr.getRHS()) |rhs| { | 1113 | // if (flow_expr.getRHS()) |rhs| { |
| 1116 | // try renderToken(ais, tree, flow_expr.ltoken, Space.Space); | 1114 | // try renderToken(ais, tree, flow_expr.ltoken, Space.Space); |
| 1117 | // return renderExpression(allocator, ais, tree, rhs, space); | 1115 | // return renderExpression(ais, tree, rhs, space); |
| 1118 | // } else { | 1116 | // } else { |
| 1119 | // return renderToken(ais, tree, flow_expr.ltoken, space); | 1117 | // return renderToken(ais, tree, flow_expr.ltoken, space); |
| 1120 | // } | 1118 | // } |
| ... | @@ -1124,7 +1122,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1124,7 +1122,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1124 | // const payload = @fieldParentPtr(ast.Node.Payload, "base", base); | 1122 | // const payload = @fieldParentPtr(ast.Node.Payload, "base", base); |
| 1125 | | 1123 | |
| 1126 | // try renderToken(ais, tree, payload.lpipe, Space.None); | 1124 | // try renderToken(ais, tree, payload.lpipe, Space.None); |
| 1127 | // try renderExpression(allocator, ais, tree, payload.error_symbol, Space.None); | 1125 | // try renderExpression(ais, tree, payload.error_symbol, Space.None); |
| 1128 | // return renderToken(ais, tree, payload.rpipe, space); | 1126 | // return renderToken(ais, tree, payload.rpipe, space); |
| 1129 | //}, | 1127 | //}, |
| 1130 | | 1128 | |
| ... | @@ -1135,7 +1133,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1135,7 +1133,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1135 | // if (payload.ptr_token) |ptr_token| { | 1133 | // if (payload.ptr_token) |ptr_token| { |
| 1136 | // try renderToken(ais, tree, ptr_token, Space.None); | 1134 | // try renderToken(ais, tree, ptr_token, Space.None); |
| 1137 | // } | 1135 | // } |
| 1138 | // try renderExpression(allocator, ais, tree, payload.value_symbol, Space.None); | 1136 | // try renderExpression(ais, tree, payload.value_symbol, Space.None); |
| 1139 | // return renderToken(ais, tree, payload.rpipe, space); | 1137 | // return renderToken(ais, tree, payload.rpipe, space); |
| 1140 | //}, | 1138 | //}, |
| 1141 | | 1139 | |
| ... | @@ -1146,13 +1144,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1146,13 +1144,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1146 | // if (payload.ptr_token) |ptr_token| { | 1144 | // if (payload.ptr_token) |ptr_token| { |
| 1147 | // try renderToken(ais, tree, ptr_token, Space.None); | 1145 | // try renderToken(ais, tree, ptr_token, Space.None); |
| 1148 | // } | 1146 | // } |
| 1149 | // try renderExpression(allocator, ais, tree, payload.value_symbol, Space.None); | 1147 | // try renderExpression(ais, tree, payload.value_symbol, Space.None); |
| 1150 | | 1148 | |
| 1151 | // if (payload.index_symbol) |index_symbol| { | 1149 | // if (payload.index_symbol) |index_symbol| { |
| 1152 | // const comma = tree.nextToken(payload.value_symbol.lastToken()); | 1150 | // const comma = tree.nextToken(payload.value_symbol.lastToken()); |
| 1153 | | 1151 | |
| 1154 | // try renderToken(ais, tree, comma, Space.Space); | 1152 | // try renderToken(ais, tree, comma, Space.Space); |
| 1155 | // try renderExpression(allocator, ais, tree, index_symbol, Space.None); | 1153 | // try renderExpression(ais, tree, index_symbol, Space.None); |
| 1156 | // } | 1154 | // } |
| 1157 | | 1155 | |
| 1158 | // return renderToken(ais, tree, payload.rpipe, space); | 1156 | // return renderToken(ais, tree, payload.rpipe, space); |
| ... | @@ -1164,7 +1162,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1164,7 +1162,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1164 | // try renderToken(ais, tree, grouped_expr.lparen, Space.None); | 1162 | // try renderToken(ais, tree, grouped_expr.lparen, Space.None); |
| 1165 | // { | 1163 | // { |
| 1166 | // ais.pushIndentOneShot(); | 1164 | // ais.pushIndentOneShot(); |
| 1167 | // try renderExpression(allocator, ais, tree, grouped_expr.expr, Space.None); | 1165 | // try renderExpression(ais, tree, grouped_expr.expr, Space.None); |
| 1168 | // } | 1166 | // } |
| 1169 | // return renderToken(ais, tree, grouped_expr.rparen, space); | 1167 | // return renderToken(ais, tree, grouped_expr.rparen, space); |
| 1170 | //}, | 1168 | //}, |
| ... | @@ -1175,7 +1173,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1175,7 +1173,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1175 | // try renderToken(ais, tree, field_init.period_token, Space.None); // . | 1173 | // try renderToken(ais, tree, field_init.period_token, Space.None); // . |
| 1176 | // try renderToken(ais, tree, field_init.name_token, Space.Space); // name | 1174 | // try renderToken(ais, tree, field_init.name_token, Space.Space); // name |
| 1177 | // try renderToken(ais, tree, tree.nextToken(field_init.name_token), Space.Space); // = | 1175 | // try renderToken(ais, tree, tree.nextToken(field_init.name_token), Space.Space); // = |
| 1178 | // return renderExpression(allocator, ais, tree, field_init.expr, space); | 1176 | // return renderExpression(ais, tree, field_init.expr, space); |
| 1179 | //}, | 1177 | //}, |
| 1180 | | 1178 | |
| 1181 | //.ContainerDecl => { | 1179 | //.ContainerDecl => { |
| ... | @@ -1200,7 +1198,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1200,7 +1198,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1200 | | 1198 | |
| 1201 | // if (enum_tag_type) |expr| { | 1199 | // if (enum_tag_type) |expr| { |
| 1202 | // try renderToken(ais, tree, tree.nextToken(enum_token), Space.None); // ( | 1200 | // try renderToken(ais, tree, tree.nextToken(enum_token), Space.None); // ( |
| 1203 | // try renderExpression(allocator, ais, tree, expr, Space.None); | 1201 | // try renderExpression(ais, tree, expr, Space.None); |
| 1204 | | 1202 | |
| 1205 | // const rparen = tree.nextToken(expr.lastToken()); | 1203 | // const rparen = tree.nextToken(expr.lastToken()); |
| 1206 | // try renderToken(ais, tree, rparen, Space.None); // ) | 1204 | // try renderToken(ais, tree, rparen, Space.None); // ) |
| ... | @@ -1216,7 +1214,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1216,7 +1214,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1216 | // const rparen = tree.nextToken(type_expr.lastToken()); | 1214 | // const rparen = tree.nextToken(type_expr.lastToken()); |
| 1217 | | 1215 | |
| 1218 | // try renderToken(ais, tree, lparen, Space.None); // ( | 1216 | // try renderToken(ais, tree, lparen, Space.None); // ( |
| 1219 | // try renderExpression(allocator, ais, tree, type_expr, Space.None); | 1217 | // try renderExpression(ais, tree, type_expr, Space.None); |
| 1220 | // try renderToken(ais, tree, rparen, Space.Space); // ) | 1218 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1221 | // }, | 1219 | // }, |
| 1222 | // } | 1220 | // } |
| ... | @@ -1317,7 +1315,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1317,7 +1315,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1317 | | 1315 | |
| 1318 | // try renderToken(ais, tree, err_set_decl.error_token, Space.None); // error | 1316 | // try renderToken(ais, tree, err_set_decl.error_token, Space.None); // error |
| 1319 | // try renderToken(ais, tree, lbrace, Space.None); // { | 1317 | // try renderToken(ais, tree, lbrace, Space.None); // { |
| 1320 | // try renderExpression(allocator, ais, tree, node, Space.None); | 1318 | // try renderExpression(ais, tree, node, Space.None); |
| 1321 | // return renderToken(ais, tree, err_set_decl.rbrace_token, space); // } | 1319 | // return renderToken(ais, tree, err_set_decl.rbrace_token, space); // } |
| 1322 | // } | 1320 | // } |
| 1323 | | 1321 | |
| ... | @@ -1337,12 +1335,12 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1337,12 +1335,12 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1337 | // const decls = err_set_decl.decls(); | 1335 | // const decls = err_set_decl.decls(); |
| 1338 | // for (decls) |node, i| { | 1336 | // for (decls) |node, i| { |
| 1339 | // if (i + 1 < decls.len) { | 1337 | // if (i + 1 < decls.len) { |
| 1340 | // try renderExpression(allocator, ais, tree, node, Space.None); | 1338 | // try renderExpression(ais, tree, node, Space.None); |
| 1341 | // try renderToken(ais, tree, tree.nextToken(node.lastToken()), Space.Newline); // , | 1339 | // try renderToken(ais, tree, tree.nextToken(node.lastToken()), Space.Newline); // , |
| 1342 | | 1340 | |
| 1343 | // try renderExtraNewline(tree, ais, decls[i + 1]); | 1341 | // try renderExtraNewline(tree, ais, decls[i + 1]); |
| 1344 | // } else { | 1342 | // } else { |
| 1345 | // try renderExpression(allocator, ais, tree, node, Space.Comma); | 1343 | // try renderExpression(ais, tree, node, Space.Comma); |
| 1346 | // } | 1344 | // } |
| 1347 | // } | 1345 | // } |
| 1348 | // } | 1346 | // } |
| ... | @@ -1354,14 +1352,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1354,14 +1352,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1354 | // const decls = err_set_decl.decls(); | 1352 | // const decls = err_set_decl.decls(); |
| 1355 | // for (decls) |node, i| { | 1353 | // for (decls) |node, i| { |
| 1356 | // if (i + 1 < decls.len) { | 1354 | // if (i + 1 < decls.len) { |
| 1357 | // try renderExpression(allocator, ais, tree, node, Space.None); | 1355 | // try renderExpression(ais, tree, node, Space.None); |
| 1358 | | 1356 | |
| 1359 | // const comma_token = tree.nextToken(node.lastToken()); | 1357 | // const comma_token = tree.nextToken(node.lastToken()); |
| 1360 | // assert(tree.token_tags[comma_token] == .Comma); | 1358 | // assert(tree.token_tags[comma_token] == .Comma); |
| 1361 | // try renderToken(ais, tree, comma_token, Space.Space); // , | 1359 | // try renderToken(ais, tree, comma_token, Space.Space); // , |
| 1362 | // try renderExtraNewline(tree, ais, decls[i + 1]); | 1360 | // try renderExtraNewline(tree, ais, decls[i + 1]); |
| 1363 | // } else { | 1361 | // } else { |
| 1364 | // try renderExpression(allocator, ais, tree, node, Space.Space); | 1362 | // try renderExpression(ais, tree, node, Space.Space); |
| 1365 | // } | 1363 | // } |
| 1366 | // } | 1364 | // } |
| 1367 | | 1365 | |
| ... | @@ -1372,7 +1370,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1372,7 +1370,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1372 | //.ErrorTag => { | 1370 | //.ErrorTag => { |
| 1373 | // const tag = @fieldParentPtr(ast.Node.ErrorTag, "base", base); | 1371 | // const tag = @fieldParentPtr(ast.Node.ErrorTag, "base", base); |
| 1374 | | 1372 | |
| 1375 | // try renderDocComments(tree, ais, tag, tag.doc_comments); | 1373 | // try renderDocComments(ais, tree, tag, tag.doc_comments); |
| 1376 | // return renderToken(ais, tree, tag.name_token, space); // name | 1374 | // return renderToken(ais, tree, tag.name_token, space); // name |
| 1377 | //}, | 1375 | //}, |
| 1378 | | 1376 | |
| ... | @@ -1431,7 +1429,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1431,7 +1429,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1431 | // if (param_node.*.tag == .MultilineStringLiteral or tree.token_tags[maybe_comment] == .LineComment) { | 1429 | // if (param_node.*.tag == .MultilineStringLiteral or tree.token_tags[maybe_comment] == .LineComment) { |
| 1432 | // ais.pushIndentOneShot(); | 1430 | // ais.pushIndentOneShot(); |
| 1433 | // } | 1431 | // } |
| 1434 | // try renderExpression(allocator, ais, tree, param_node, Space.None); | 1432 | // try renderExpression(ais, tree, param_node, Space.None); |
| 1435 | | 1433 | |
| 1436 | // if (i + 1 < params.len) { | 1434 | // if (i + 1 < params.len) { |
| 1437 | // const comma_token = tree.nextToken(param_node.lastToken()); | 1435 | // const comma_token = tree.nextToken(param_node.lastToken()); |
| ... | @@ -1445,7 +1443,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1445,7 +1443,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1445 | // try renderToken(ais, tree, lparen, Space.Newline); // ( | 1443 | // try renderToken(ais, tree, lparen, Space.Newline); // ( |
| 1446 | | 1444 | |
| 1447 | // for (builtin_call.params()) |param_node| { | 1445 | // for (builtin_call.params()) |param_node| { |
| 1448 | // try renderExpression(allocator, ais, tree, param_node, Space.Comma); | 1446 | // try renderExpression(ais, tree, param_node, Space.Comma); |
| 1449 | // } | 1447 | // } |
| 1450 | // } | 1448 | // } |
| 1451 | | 1449 | |
| ... | @@ -1468,7 +1466,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1468,7 +1466,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1468 | // } | 1466 | // } |
| 1469 | | 1467 | |
| 1470 | // if (fn_proto.getLibName()) |lib_name| { | 1468 | // if (fn_proto.getLibName()) |lib_name| { |
| 1471 | // try renderExpression(allocator, ais, tree, lib_name, Space.Space); | 1469 | // try renderExpression(ais, tree, lib_name, Space.Space); |
| 1472 | // } | 1470 | // } |
| 1473 | | 1471 | |
| 1474 | // const lparen = if (fn_proto.getNameToken()) |name_token| blk: { | 1472 | // const lparen = if (fn_proto.getNameToken()) |name_token| blk: { |
| ... | @@ -1541,7 +1539,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1541,7 +1539,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1541 | | 1539 | |
| 1542 | // try renderToken(ais, tree, align_kw, Space.None); // align | 1540 | // try renderToken(ais, tree, align_kw, Space.None); // align |
| 1543 | // try renderToken(ais, tree, align_lparen, Space.None); // ( | 1541 | // try renderToken(ais, tree, align_lparen, Space.None); // ( |
| 1544 | // try renderExpression(allocator, ais, tree, align_expr, Space.None); | 1542 | // try renderExpression(ais, tree, align_expr, Space.None); |
| 1545 | // try renderToken(ais, tree, align_rparen, Space.Space); // ) | 1543 | // try renderToken(ais, tree, align_rparen, Space.Space); // ) |
| 1546 | // } | 1544 | // } |
| 1547 | | 1545 | |
| ... | @@ -1552,7 +1550,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1552,7 +1550,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1552 | | 1550 | |
| 1553 | // try renderToken(ais, tree, section_kw, Space.None); // section | 1551 | // try renderToken(ais, tree, section_kw, Space.None); // section |
| 1554 | // try renderToken(ais, tree, section_lparen, Space.None); // ( | 1552 | // try renderToken(ais, tree, section_lparen, Space.None); // ( |
| 1555 | // try renderExpression(allocator, ais, tree, section_expr, Space.None); | 1553 | // try renderExpression(ais, tree, section_expr, Space.None); |
| 1556 | // try renderToken(ais, tree, section_rparen, Space.Space); // ) | 1554 | // try renderToken(ais, tree, section_rparen, Space.Space); // ) |
| 1557 | // } | 1555 | // } |
| 1558 | | 1556 | |
| ... | @@ -1563,7 +1561,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1563,7 +1561,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1563 | | 1561 | |
| 1564 | // try renderToken(ais, tree, callconv_kw, Space.None); // callconv | 1562 | // try renderToken(ais, tree, callconv_kw, Space.None); // callconv |
| 1565 | // try renderToken(ais, tree, callconv_lparen, Space.None); // ( | 1563 | // try renderToken(ais, tree, callconv_lparen, Space.None); // ( |
| 1566 | // try renderExpression(allocator, ais, tree, callconv_expr, Space.None); | 1564 | // try renderExpression(ais, tree, callconv_expr, Space.None); |
| 1567 | // try renderToken(ais, tree, callconv_rparen, Space.Space); // ) | 1565 | // try renderToken(ais, tree, callconv_rparen, Space.Space); // ) |
| 1568 | // } else if (fn_proto.getIsExternPrototype() != null) { | 1566 | // } else if (fn_proto.getIsExternPrototype() != null) { |
| 1569 | // try ais.writer().writeAll("callconv(.C) "); | 1567 | // try ais.writer().writeAll("callconv(.C) "); |
| ... | @@ -1573,11 +1571,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1573,11 +1571,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1573 | | 1571 | |
| 1574 | // switch (fn_proto.return_type) { | 1572 | // switch (fn_proto.return_type) { |
| 1575 | // .Explicit => |node| { | 1573 | // .Explicit => |node| { |
| 1576 | // return renderExpression(allocator, ais, tree, node, space); | 1574 | // return renderExpression(ais, tree, node, space); |
| 1577 | // }, | 1575 | // }, |
| 1578 | // .InferErrorSet => |node| { | 1576 | // .InferErrorSet => |node| { |
| 1579 | // try renderToken(ais, tree, tree.prevToken(node.firstToken()), Space.None); // ! | 1577 | // try renderToken(ais, tree, tree.prevToken(node.firstToken()), Space.None); // ! |
| 1580 | // return renderExpression(allocator, ais, tree, node, space); | 1578 | // return renderExpression(ais, tree, node, space); |
| 1581 | // }, | 1579 | // }, |
| 1582 | // .Invalid => unreachable, | 1580 | // .Invalid => unreachable, |
| 1583 | // } | 1581 | // } |
| ... | @@ -1589,7 +1587,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1589,7 +1587,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1589 | // if (anyframe_type.result) |result| { | 1587 | // if (anyframe_type.result) |result| { |
| 1590 | // try renderToken(ais, tree, anyframe_type.anyframe_token, Space.None); // anyframe | 1588 | // try renderToken(ais, tree, anyframe_type.anyframe_token, Space.None); // anyframe |
| 1591 | // try renderToken(ais, tree, result.arrow_token, Space.None); // -> | 1589 | // try renderToken(ais, tree, result.arrow_token, Space.None); // -> |
| 1592 | // return renderExpression(allocator, ais, tree, result.return_type, space); | 1590 | // return renderExpression(ais, tree, result.return_type, space); |
| 1593 | // } else { | 1591 | // } else { |
| 1594 | // return renderToken(ais, tree, anyframe_type.anyframe_token, space); // anyframe | 1592 | // return renderToken(ais, tree, anyframe_type.anyframe_token, space); // anyframe |
| 1595 | // } | 1593 | // } |
| ... | @@ -1607,13 +1605,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1607,13 +1605,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1607 | // const lbrace = tree.nextToken(rparen); | 1605 | // const lbrace = tree.nextToken(rparen); |
| 1608 | | 1606 | |
| 1609 | // if (switch_node.cases_len == 0) { | 1607 | // if (switch_node.cases_len == 0) { |
| 1610 | // try renderExpression(allocator, ais, tree, switch_node.expr, Space.None); | 1608 | // try renderExpression(ais, tree, switch_node.expr, Space.None); |
| 1611 | // try renderToken(ais, tree, rparen, Space.Space); // ) | 1609 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1612 | // try renderToken(ais, tree, lbrace, Space.None); // { | 1610 | // try renderToken(ais, tree, lbrace, Space.None); // { |
| 1613 | // return renderToken(ais, tree, switch_node.rbrace, space); // } | 1611 | // return renderToken(ais, tree, switch_node.rbrace, space); // } |
| 1614 | // } | 1612 | // } |
| 1615 | | 1613 | |
| 1616 | // try renderExpression(allocator, ais, tree, switch_node.expr, Space.None); | 1614 | // try renderExpression(ais, tree, switch_node.expr, Space.None); |
| 1617 | // try renderToken(ais, tree, rparen, Space.Space); // ) | 1615 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1618 | | 1616 | |
| 1619 | // { | 1617 | // { |
| ... | @@ -1623,7 +1621,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1623,7 +1621,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1623 | | 1621 | |
| 1624 | // const cases = switch_node.cases(); | 1622 | // const cases = switch_node.cases(); |
| 1625 | // for (cases) |node, i| { | 1623 | // for (cases) |node, i| { |
| 1626 | // try renderExpression(allocator, ais, tree, node, Space.Comma); | 1624 | // try renderExpression(ais, tree, node, Space.Comma); |
| 1627 | | 1625 | |
| 1628 | // if (i + 1 < cases.len) { | 1626 | // if (i + 1 < cases.len) { |
| 1629 | // try renderExtraNewline(tree, ais, cases[i + 1]); | 1627 | // try renderExtraNewline(tree, ais, cases[i + 1]); |
| ... | @@ -1648,26 +1646,26 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1648,26 +1646,26 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1648 | // const items = switch_case.items(); | 1646 | // const items = switch_case.items(); |
| 1649 | // for (items) |node, i| { | 1647 | // for (items) |node, i| { |
| 1650 | // if (i + 1 < items.len) { | 1648 | // if (i + 1 < items.len) { |
| 1651 | // try renderExpression(allocator, ais, tree, node, Space.None); | 1649 | // try renderExpression(ais, tree, node, Space.None); |
| 1652 | | 1650 | |
| 1653 | // const comma_token = tree.nextToken(node.lastToken()); | 1651 | // const comma_token = tree.nextToken(node.lastToken()); |
| 1654 | // try renderToken(ais, tree, comma_token, Space.Space); // , | 1652 | // try renderToken(ais, tree, comma_token, Space.Space); // , |
| 1655 | // try renderExtraNewline(tree, ais, items[i + 1]); | 1653 | // try renderExtraNewline(tree, ais, items[i + 1]); |
| 1656 | // } else { | 1654 | // } else { |
| 1657 | // try renderExpression(allocator, ais, tree, node, Space.Space); | 1655 | // try renderExpression(ais, tree, node, Space.Space); |
| 1658 | // } | 1656 | // } |
| 1659 | // } | 1657 | // } |
| 1660 | // } else { | 1658 | // } else { |
| 1661 | // const items = switch_case.items(); | 1659 | // const items = switch_case.items(); |
| 1662 | // for (items) |node, i| { | 1660 | // for (items) |node, i| { |
| 1663 | // if (i + 1 < items.len) { | 1661 | // if (i + 1 < items.len) { |
| 1664 | // try renderExpression(allocator, ais, tree, node, Space.None); | 1662 | // try renderExpression(ais, tree, node, Space.None); |
| 1665 | | 1663 | |
| 1666 | // const comma_token = tree.nextToken(node.lastToken()); | 1664 | // const comma_token = tree.nextToken(node.lastToken()); |
| 1667 | // try renderToken(ais, tree, comma_token, Space.Newline); // , | 1665 | // try renderToken(ais, tree, comma_token, Space.Newline); // , |
| 1668 | // try renderExtraNewline(tree, ais, items[i + 1]); | 1666 | // try renderExtraNewline(tree, ais, items[i + 1]); |
| 1669 | // } else { | 1667 | // } else { |
| 1670 | // try renderExpression(allocator, ais, tree, node, Space.Comma); | 1668 | // try renderExpression(ais, tree, node, Space.Comma); |
| 1671 | // } | 1669 | // } |
| 1672 | // } | 1670 | // } |
| 1673 | // } | 1671 | // } |
| ... | @@ -1675,10 +1673,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1675,10 +1673,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1675 | // try renderToken(ais, tree, switch_case.arrow_token, Space.Space); // => | 1673 | // try renderToken(ais, tree, switch_case.arrow_token, Space.Space); // => |
| 1676 | | 1674 | |
| 1677 | // if (switch_case.payload) |payload| { | 1675 | // if (switch_case.payload) |payload| { |
| 1678 | // try renderExpression(allocator, ais, tree, payload, Space.Space); | 1676 | // try renderExpression(ais, tree, payload, Space.Space); |
| 1679 | // } | 1677 | // } |
| 1680 | | 1678 | |
| 1681 | // return renderExpression(allocator, ais, tree, switch_case.expr, space); | 1679 | // return renderExpression(ais, tree, switch_case.expr, space); |
| 1682 | //}, | 1680 | //}, |
| 1683 | //.SwitchElse => { | 1681 | //.SwitchElse => { |
| 1684 | // const switch_else = @fieldParentPtr(ast.Node.SwitchElse, "base", base); | 1682 | // const switch_else = @fieldParentPtr(ast.Node.SwitchElse, "base", base); |
| ... | @@ -1695,15 +1693,15 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1695,15 +1693,15 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1695 | | 1693 | |
| 1696 | // if (else_node.payload) |payload| { | 1694 | // if (else_node.payload) |payload| { |
| 1697 | // const payload_space = if (same_line) Space.Space else Space.Newline; | 1695 | // const payload_space = if (same_line) Space.Space else Space.Newline; |
| 1698 | // try renderExpression(allocator, ais, tree, payload, payload_space); | 1696 | // try renderExpression(ais, tree, payload, payload_space); |
| 1699 | // } | 1697 | // } |
| 1700 | | 1698 | |
| 1701 | // if (same_line) { | 1699 | // if (same_line) { |
| 1702 | // return renderExpression(allocator, ais, tree, else_node.body, space); | 1700 | // return renderExpression(ais, tree, else_node.body, space); |
| 1703 | // } else { | 1701 | // } else { |
| 1704 | // ais.pushIndent(); | 1702 | // ais.pushIndent(); |
| 1705 | // defer ais.popIndent(); | 1703 | // defer ais.popIndent(); |
| 1706 | // return renderExpression(allocator, ais, tree, else_node.body, space); | 1704 | // return renderExpression(ais, tree, else_node.body, space); |
| 1707 | // } | 1705 | // } |
| 1708 | //}, | 1706 | //}, |
| 1709 | | 1707 | |
| ... | @@ -1721,7 +1719,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1721,7 +1719,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1721 | | 1719 | |
| 1722 | // try renderToken(ais, tree, while_node.while_token, Space.Space); // while | 1720 | // try renderToken(ais, tree, while_node.while_token, Space.Space); // while |
| 1723 | // try renderToken(ais, tree, tree.nextToken(while_node.while_token), Space.None); // ( | 1721 | // try renderToken(ais, tree, tree.nextToken(while_node.while_token), Space.None); // ( |
| 1724 | // try renderExpression(allocator, ais, tree, while_node.condition, Space.None); | 1722 | // try renderExpression(ais, tree, while_node.condition, Space.None); |
| 1725 | | 1723 | |
| 1726 | // const cond_rparen = tree.nextToken(while_node.condition.lastToken()); | 1724 | // const cond_rparen = tree.nextToken(while_node.condition.lastToken()); |
| 1727 | | 1725 | |
| ... | @@ -1748,7 +1746,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1748,7 +1746,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1748 | | 1746 | |
| 1749 | // if (while_node.payload) |payload| { | 1747 | // if (while_node.payload) |payload| { |
| 1750 | // const payload_space = if (while_node.continue_expr != null) Space.Space else block_start_space; | 1748 | // const payload_space = if (while_node.continue_expr != null) Space.Space else block_start_space; |
| 1751 | // try renderExpression(allocator, ais, tree, payload, payload_space); | 1749 | // try renderExpression(ais, tree, payload, payload_space); |
| 1752 | // } | 1750 | // } |
| 1753 | | 1751 | |
| 1754 | // if (while_node.continue_expr) |continue_expr| { | 1752 | // if (while_node.continue_expr) |continue_expr| { |
| ... | @@ -1759,7 +1757,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1759,7 +1757,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1759 | // try renderToken(ais, tree, colon, Space.Space); // : | 1757 | // try renderToken(ais, tree, colon, Space.Space); // : |
| 1760 | // try renderToken(ais, tree, lparen, Space.None); // ( | 1758 | // try renderToken(ais, tree, lparen, Space.None); // ( |
| 1761 | | 1759 | |
| 1762 | // try renderExpression(allocator, ais, tree, continue_expr, Space.None); | 1760 | // try renderExpression(ais, tree, continue_expr, Space.None); |
| 1763 | | 1761 | |
| 1764 | // try renderToken(ais, tree, rparen, block_start_space); // ) | 1762 | // try renderToken(ais, tree, rparen, block_start_space); // ) |
| 1765 | // } | 1763 | // } |
| ... | @@ -1767,11 +1765,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1767,11 +1765,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1767 | // { | 1765 | // { |
| 1768 | // if (!body_is_block) ais.pushIndent(); | 1766 | // if (!body_is_block) ais.pushIndent(); |
| 1769 | // defer if (!body_is_block) ais.popIndent(); | 1767 | // defer if (!body_is_block) ais.popIndent(); |
| 1770 | // try renderExpression(allocator, ais, tree, while_node.body, after_body_space); | 1768 | // try renderExpression(ais, tree, while_node.body, after_body_space); |
| 1771 | // } | 1769 | // } |
| 1772 | | 1770 | |
| 1773 | // if (while_node.@"else") |@"else"| { | 1771 | // if (while_node.@"else") |@"else"| { |
| 1774 | // return renderExpression(allocator, ais, tree, &@"else".base, space); | 1772 | // return renderExpression(ais, tree, &@"else".base, space); |
| 1775 | // } | 1773 | // } |
| 1776 | //}, | 1774 | //}, |
| 1777 | | 1775 | |
| ... | @@ -1789,7 +1787,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1789,7 +1787,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1789 | | 1787 | |
| 1790 | // try renderToken(ais, tree, for_node.for_token, Space.Space); // for | 1788 | // try renderToken(ais, tree, for_node.for_token, Space.Space); // for |
| 1791 | // try renderToken(ais, tree, tree.nextToken(for_node.for_token), Space.None); // ( | 1789 | // try renderToken(ais, tree, tree.nextToken(for_node.for_token), Space.None); // ( |
| 1792 | // try renderExpression(allocator, ais, tree, for_node.array_expr, Space.None); | 1790 | // try renderExpression(ais, tree, for_node.array_expr, Space.None); |
| 1793 | | 1791 | |
| 1794 | // const rparen = tree.nextToken(for_node.array_expr.lastToken()); | 1792 | // const rparen = tree.nextToken(for_node.array_expr.lastToken()); |
| 1795 | | 1793 | |
| ... | @@ -1800,7 +1798,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1800,7 +1798,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1800 | // try renderToken(ais, tree, rparen, Space.Space); // ) | 1798 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1801 | | 1799 | |
| 1802 | // const space_after_payload = if (body_on_same_line) Space.Space else Space.Newline; | 1800 | // const space_after_payload = if (body_on_same_line) Space.Space else Space.Newline; |
| 1803 | // try renderExpression(allocator, ais, tree, for_node.payload, space_after_payload); // |x| | 1801 | // try renderExpression(ais, tree, for_node.payload, space_after_payload); // |x| |
| 1804 | | 1802 | |
| 1805 | // const space_after_body = blk: { | 1803 | // const space_after_body = blk: { |
| 1806 | // if (for_node.@"else") |@"else"| { | 1804 | // if (for_node.@"else") |@"else"| { |
| ... | @@ -1818,11 +1816,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1818,11 +1816,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1818 | // { | 1816 | // { |
| 1819 | // if (!body_on_same_line) ais.pushIndent(); | 1817 | // if (!body_on_same_line) ais.pushIndent(); |
| 1820 | // defer if (!body_on_same_line) ais.popIndent(); | 1818 | // defer if (!body_on_same_line) ais.popIndent(); |
| 1821 | // try renderExpression(allocator, ais, tree, for_node.body, space_after_body); // { body } | 1819 | // try renderExpression(ais, tree, for_node.body, space_after_body); // { body } |
| 1822 | // } | 1820 | // } |
| 1823 | | 1821 | |
| 1824 | // if (for_node.@"else") |@"else"| { | 1822 | // if (for_node.@"else") |@"else"| { |
| 1825 | // return renderExpression(allocator, ais, tree, &@"else".base, space); // else | 1823 | // return renderExpression(ais, tree, &@"else".base, space); // else |
| 1826 | // } | 1824 | // } |
| 1827 | //}, | 1825 | //}, |
| 1828 | | 1826 | |
| ... | @@ -1835,7 +1833,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1835,7 +1833,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1835 | // try renderToken(ais, tree, if_node.if_token, Space.Space); // if | 1833 | // try renderToken(ais, tree, if_node.if_token, Space.Space); // if |
| 1836 | // try renderToken(ais, tree, lparen, Space.None); // ( | 1834 | // try renderToken(ais, tree, lparen, Space.None); // ( |
| 1837 | | 1835 | |
| 1838 | // try renderExpression(allocator, ais, tree, if_node.condition, Space.None); // condition | 1836 | // try renderExpression(ais, tree, if_node.condition, Space.None); // condition |
| 1839 | | 1837 | |
| 1840 | // const body_is_if_block = if_node.body.tag == .If; | 1838 | // const body_is_if_block = if_node.body.tag == .If; |
| 1841 | // const body_is_block = nodeIsBlock(if_node.body); | 1839 | // const body_is_block = nodeIsBlock(if_node.body); |
| ... | @@ -1847,14 +1845,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1847,14 +1845,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1847 | // try renderToken(ais, tree, rparen, after_rparen_space); // ) | 1845 | // try renderToken(ais, tree, rparen, after_rparen_space); // ) |
| 1848 | | 1846 | |
| 1849 | // if (if_node.payload) |payload| { | 1847 | // if (if_node.payload) |payload| { |
| 1850 | // try renderExpression(allocator, ais, tree, payload, Space.BlockStart); // |x| | 1848 | // try renderExpression(ais, tree, payload, Space.BlockStart); // |x| |
| 1851 | // } | 1849 | // } |
| 1852 | | 1850 | |
| 1853 | // if (if_node.@"else") |@"else"| { | 1851 | // if (if_node.@"else") |@"else"| { |
| 1854 | // try renderExpression(allocator, ais, tree, if_node.body, Space.SpaceOrOutdent); | 1852 | // try renderExpression(ais, tree, if_node.body, Space.SpaceOrOutdent); |
| 1855 | // return renderExpression(allocator, ais, tree, &@"else".base, space); | 1853 | // return renderExpression(ais, tree, &@"else".base, space); |
| 1856 | // } else { | 1854 | // } else { |
| 1857 | // return renderExpression(allocator, ais, tree, if_node.body, space); | 1855 | // return renderExpression(ais, tree, if_node.body, space); |
| 1858 | // } | 1856 | // } |
| 1859 | // } | 1857 | // } |
| 1860 | | 1858 | |
| ... | @@ -1870,7 +1868,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1870,7 +1868,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1870 | // } | 1868 | // } |
| 1871 | | 1869 | |
| 1872 | // if (if_node.payload) |payload| { | 1870 | // if (if_node.payload) |payload| { |
| 1873 | // try renderExpression(allocator, ais, tree, payload, Space.Newline); | 1871 | // try renderExpression(ais, tree, payload, Space.Newline); |
| 1874 | // } | 1872 | // } |
| 1875 | | 1873 | |
| 1876 | // if (if_node.@"else") |@"else"| { | 1874 | // if (if_node.@"else") |@"else"| { |
| ... | @@ -1879,33 +1877,33 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1879,33 +1877,33 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1879 | // { | 1877 | // { |
| 1880 | // ais.pushIndent(); | 1878 | // ais.pushIndent(); |
| 1881 | // defer ais.popIndent(); | 1879 | // defer ais.popIndent(); |
| 1882 | // try renderExpression(allocator, ais, tree, if_node.body, Space.Newline); | 1880 | // try renderExpression(ais, tree, if_node.body, Space.Newline); |
| 1883 | // } | 1881 | // } |
| 1884 | | 1882 | |
| 1885 | // if (else_is_block) { | 1883 | // if (else_is_block) { |
| 1886 | // try renderToken(ais, tree, @"else".else_token, Space.Space); // else | 1884 | // try renderToken(ais, tree, @"else".else_token, Space.Space); // else |
| 1887 | | 1885 | |
| 1888 | // if (@"else".payload) |payload| { | 1886 | // if (@"else".payload) |payload| { |
| 1889 | // try renderExpression(allocator, ais, tree, payload, Space.Space); | 1887 | // try renderExpression(ais, tree, payload, Space.Space); |
| 1890 | // } | 1888 | // } |
| 1891 | | 1889 | |
| 1892 | // return renderExpression(allocator, ais, tree, @"else".body, space); | 1890 | // return renderExpression(ais, tree, @"else".body, space); |
| 1893 | // } else { | 1891 | // } else { |
| 1894 | // const after_else_space = if (@"else".payload == null) Space.Newline else Space.Space; | 1892 | // const after_else_space = if (@"else".payload == null) Space.Newline else Space.Space; |
| 1895 | // try renderToken(ais, tree, @"else".else_token, after_else_space); // else | 1893 | // try renderToken(ais, tree, @"else".else_token, after_else_space); // else |
| 1896 | | 1894 | |
| 1897 | // if (@"else".payload) |payload| { | 1895 | // if (@"else".payload) |payload| { |
| 1898 | // try renderExpression(allocator, ais, tree, payload, Space.Newline); | 1896 | // try renderExpression(ais, tree, payload, Space.Newline); |
| 1899 | // } | 1897 | // } |
| 1900 | | 1898 | |
| 1901 | // ais.pushIndent(); | 1899 | // ais.pushIndent(); |
| 1902 | // defer ais.popIndent(); | 1900 | // defer ais.popIndent(); |
| 1903 | // return renderExpression(allocator, ais, tree, @"else".body, space); | 1901 | // return renderExpression(ais, tree, @"else".body, space); |
| 1904 | // } | 1902 | // } |
| 1905 | // } else { | 1903 | // } else { |
| 1906 | // ais.pushIndent(); | 1904 | // ais.pushIndent(); |
| 1907 | // defer ais.popIndent(); | 1905 | // defer ais.popIndent(); |
| 1908 | // return renderExpression(allocator, ais, tree, if_node.body, space); | 1906 | // return renderExpression(ais, tree, if_node.body, space); |
| 1909 | // } | 1907 | // } |
| 1910 | // } | 1908 | // } |
| 1911 | | 1909 | |
| ... | @@ -1914,20 +1912,20 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1914,20 +1912,20 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1914 | // try renderToken(ais, tree, rparen, Space.Space); // ) | 1912 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1915 | | 1913 | |
| 1916 | // if (if_node.payload) |payload| { | 1914 | // if (if_node.payload) |payload| { |
| 1917 | // try renderExpression(allocator, ais, tree, payload, Space.Space); | 1915 | // try renderExpression(ais, tree, payload, Space.Space); |
| 1918 | // } | 1916 | // } |
| 1919 | | 1917 | |
| 1920 | // if (if_node.@"else") |@"else"| { | 1918 | // if (if_node.@"else") |@"else"| { |
| 1921 | // try renderExpression(allocator, ais, tree, if_node.body, Space.Space); | 1919 | // try renderExpression(ais, tree, if_node.body, Space.Space); |
| 1922 | // try renderToken(ais, tree, @"else".else_token, Space.Space); | 1920 | // try renderToken(ais, tree, @"else".else_token, Space.Space); |
| 1923 | | 1921 | |
| 1924 | // if (@"else".payload) |payload| { | 1922 | // if (@"else".payload) |payload| { |
| 1925 | // try renderExpression(allocator, ais, tree, payload, Space.Space); | 1923 | // try renderExpression(ais, tree, payload, Space.Space); |
| 1926 | // } | 1924 | // } |
| 1927 | | 1925 | |
| 1928 | // return renderExpression(allocator, ais, tree, @"else".body, space); | 1926 | // return renderExpression(ais, tree, @"else".body, space); |
| 1929 | // } else { | 1927 | // } else { |
| 1930 | // return renderExpression(allocator, ais, tree, if_node.body, space); | 1928 | // return renderExpression(ais, tree, if_node.body, space); |
| 1931 | // } | 1929 | // } |
| 1932 | //}, | 1930 | //}, |
| 1933 | | 1931 | |
| ... | @@ -1948,11 +1946,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -1948,11 +1946,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1948 | // defer ais.popIndent(); | 1946 | // defer ais.popIndent(); |
| 1949 | | 1947 | |
| 1950 | // if (asm_node.outputs.len == 0 and asm_node.inputs.len == 0 and asm_node.clobbers.len == 0) { | 1948 | // if (asm_node.outputs.len == 0 and asm_node.inputs.len == 0 and asm_node.clobbers.len == 0) { |
| 1951 | // try renderExpression(allocator, ais, tree, asm_node.template, Space.None); | 1949 | // try renderExpression(ais, tree, asm_node.template, Space.None); |
| 1952 | // break :asmblk; | 1950 | // break :asmblk; |
| 1953 | // } | 1951 | // } |
| 1954 | | 1952 | |
| 1955 | // try renderExpression(allocator, ais, tree, asm_node.template, Space.Newline); | 1953 | // try renderExpression(ais, tree, asm_node.template, Space.Newline); |
| 1956 | | 1954 | |
| 1957 | // ais.setIndentDelta(asm_indent_delta); | 1955 | // ais.setIndentDelta(asm_indent_delta); |
| 1958 | // defer ais.setIndentDelta(indent_delta); | 1956 | // defer ais.setIndentDelta(indent_delta); |
| ... | @@ -2027,10 +2025,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac | ... | @@ -2027,10 +2025,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 2027 | // defer ais.popIndent(); | 2025 | // defer ais.popIndent(); |
| 2028 | // for (asm_node.clobbers) |clobber_node, i| { | 2026 | // for (asm_node.clobbers) |clobber_node, i| { |
| 2029 | // if (i + 1 >= asm_node.clobbers.len) { | 2027 | // if (i + 1 >= asm_node.clobbers.len) { |
| 2030 | // try renderExpression(allocator, ais, tree, clobber_node, Space.Newline); | 2028 | // try renderExpression(ais, tree, clobber_node, Space.Newline); |
| 2031 | // break :asmblk; | 2029 | // break :asmblk; |
| 2032 | // } else { | 2030 | // } else { |
| 2033 | // try renderExpression(allocator, ais, tree, clobber_node, Space.None); | 2031 | // try renderExpression(ais, tree, clobber_node, Space.None); |
| 2034 | // const comma = tree.nextToken(clobber_node.lastToken()); | 2032 | // const comma = tree.nextToken(clobber_node.lastToken()); |
| 2035 | // try renderToken(ais, tree, comma, Space.Space); // , | 2033 | // try renderToken(ais, tree, comma, Space.Space); // , |
| 2036 | // } | 2034 | // } |
| ... | @@ -2081,7 +2079,7 @@ fn renderArrayType( | ... | @@ -2081,7 +2079,7 @@ fn renderArrayType( |
| 2081 | defer if (do_indent) ais.popIndent(); | 2079 | defer if (do_indent) ais.popIndent(); |
| 2082 | | 2080 | |
| 2083 | try renderToken(ais, tree, lbracket, Space.None); // [ | 2081 | try renderToken(ais, tree, lbracket, Space.None); // [ |
| 2084 | try renderExpression(allocator, ais, tree, len_expr, new_space); | 2082 | try renderExpression(ais, tree, len_expr, new_space); |
| 2085 | | 2083 | |
| 2086 | if (starts_with_comment) { | 2084 | if (starts_with_comment) { |
| 2087 | try ais.maybeInsertNewline(); | 2085 | try ais.maybeInsertNewline(); |
| ... | @@ -2089,7 +2087,7 @@ fn renderArrayType( | ... | @@ -2089,7 +2087,7 @@ fn renderArrayType( |
| 2089 | if (opt_sentinel) |sentinel| { | 2087 | if (opt_sentinel) |sentinel| { |
| 2090 | const colon_token = tree.prevToken(sentinel.firstToken()); | 2088 | const colon_token = tree.prevToken(sentinel.firstToken()); |
| 2091 | try renderToken(ais, tree, colon_token, Space.None); // : | 2089 | try renderToken(ais, tree, colon_token, Space.None); // : |
| 2092 | try renderExpression(allocator, ais, tree, sentinel, Space.None); | 2090 | try renderExpression(ais, tree, sentinel, Space.None); |
| 2093 | } | 2091 | } |
| 2094 | if (starts_with_comment) { | 2092 | if (starts_with_comment) { |
| 2095 | try ais.maybeInsertNewline(); | 2093 | try ais.maybeInsertNewline(); |
| ... | @@ -2097,7 +2095,7 @@ fn renderArrayType( | ... | @@ -2097,7 +2095,7 @@ fn renderArrayType( |
| 2097 | } | 2095 | } |
| 2098 | try renderToken(ais, tree, rbracket, Space.None); // ] | 2096 | try renderToken(ais, tree, rbracket, Space.None); // ] |
| 2099 | | 2097 | |
| 2100 | return renderExpression(allocator, ais, tree, rhs, space); | 2098 | return renderExpression(ais, tree, rhs, space); |
| 2101 | } | 2099 | } |
| 2102 | | 2100 | |
| 2103 | fn renderAsmOutput( | 2101 | fn renderAsmOutput( |
| ... | @@ -2108,18 +2106,18 @@ fn renderAsmOutput( | ... | @@ -2108,18 +2106,18 @@ fn renderAsmOutput( |
| 2108 | space: Space, | 2106 | space: Space, |
| 2109 | ) Error!void { | 2107 | ) Error!void { |
| 2110 | try ais.writer().writeAll("["); | 2108 | try ais.writer().writeAll("["); |
| 2111 | try renderExpression(allocator, ais, tree, asm_output.symbolic_name, Space.None); | 2109 | try renderExpression(ais, tree, asm_output.symbolic_name, Space.None); |
| 2112 | try ais.writer().writeAll("] "); | 2110 | try ais.writer().writeAll("] "); |
| 2113 | try renderExpression(allocator, ais, tree, asm_output.constraint, Space.None); | 2111 | try renderExpression(ais, tree, asm_output.constraint, Space.None); |
| 2114 | try ais.writer().writeAll(" ("); | 2112 | try ais.writer().writeAll(" ("); |
| 2115 | | 2113 | |
| 2116 | switch (asm_output.kind) { | 2114 | switch (asm_output.kind) { |
| 2117 | .Variable => |variable_name| { | 2115 | .Variable => |variable_name| { |
| 2118 | try renderExpression(allocator, ais, tree, &variable_name.base, Space.None); | 2116 | try renderExpression(ais, tree, &variable_name.base, Space.None); |
| 2119 | }, | 2117 | }, |
| 2120 | .Return => |return_type| { | 2118 | .Return => |return_type| { |
| 2121 | try ais.writer().writeAll("-> "); | 2119 | try ais.writer().writeAll("-> "); |
| 2122 | try renderExpression(allocator, ais, tree, return_type, Space.None); | 2120 | try renderExpression(ais, tree, return_type, Space.None); |
| 2123 | }, | 2121 | }, |
| 2124 | } | 2122 | } |
| 2125 | | 2123 | |
| ... | @@ -2134,11 +2132,11 @@ fn renderAsmInput( | ... | @@ -2134,11 +2132,11 @@ fn renderAsmInput( |
| 2134 | space: Space, | 2132 | space: Space, |
| 2135 | ) Error!void { | 2133 | ) Error!void { |
| 2136 | try ais.writer().writeAll("["); | 2134 | try ais.writer().writeAll("["); |
| 2137 | try renderExpression(allocator, ais, tree, asm_input.symbolic_name, Space.None); | 2135 | try renderExpression(ais, tree, asm_input.symbolic_name, Space.None); |
| 2138 | try ais.writer().writeAll("] "); | 2136 | try ais.writer().writeAll("] "); |
| 2139 | try renderExpression(allocator, ais, tree, asm_input.constraint, Space.None); | 2137 | try renderExpression(ais, tree, asm_input.constraint, Space.None); |
| 2140 | try ais.writer().writeAll(" ("); | 2138 | try ais.writer().writeAll(" ("); |
| 2141 | try renderExpression(allocator, ais, tree, asm_input.expr, Space.None); | 2139 | try renderExpression(ais, tree, asm_input.expr, Space.None); |
| 2142 | return renderToken(ais, tree, asm_input.lastToken(), space); // ) | 2140 | return renderToken(ais, tree, asm_input.lastToken(), space); // ) |
| 2143 | } | 2141 | } |
| 2144 | | 2142 | |
| ... | @@ -2156,7 +2154,7 @@ fn renderVarDecl( | ... | @@ -2156,7 +2154,7 @@ fn renderVarDecl( |
| 2156 | try renderToken(ais, tree, extern_export_token, Space.Space); // extern | 2154 | try renderToken(ais, tree, extern_export_token, Space.Space); // extern |
| 2157 | | 2155 | |
| 2158 | if (var_decl.getLibName()) |lib_name| { | 2156 | if (var_decl.getLibName()) |lib_name| { |
| 2159 | try renderExpression(allocator, ais, tree, lib_name, Space.Space); // "lib" | 2157 | try renderExpression(ais, tree, lib_name, Space.Space); // "lib" |
| 2160 | } | 2158 | } |
| 2161 | } | 2159 | } |
| 2162 | | 2160 | |
| ... | @@ -2183,7 +2181,7 @@ fn renderVarDecl( | ... | @@ -2183,7 +2181,7 @@ fn renderVarDecl( |
| 2183 | const s = if (var_decl.getAlignNode() != null or | 2181 | const s = if (var_decl.getAlignNode() != null or |
| 2184 | var_decl.getSectionNode() != null or | 2182 | var_decl.getSectionNode() != null or |
| 2185 | var_decl.getInitNode() != null) Space.Space else Space.None; | 2183 | var_decl.getInitNode() != null) Space.Space else Space.None; |
| 2186 | try renderExpression(allocator, ais, tree, type_node, s); | 2184 | try renderExpression(ais, tree, type_node, s); |
| 2187 | } | 2185 | } |
| 2188 | | 2186 | |
| 2189 | if (var_decl.getAlignNode()) |align_node| { | 2187 | if (var_decl.getAlignNode()) |align_node| { |
| ... | @@ -2192,7 +2190,7 @@ fn renderVarDecl( | ... | @@ -2192,7 +2190,7 @@ fn renderVarDecl( |
| 2192 | const rparen = tree.nextToken(align_node.lastToken()); | 2190 | const rparen = tree.nextToken(align_node.lastToken()); |
| 2193 | try renderToken(ais, tree, align_kw, Space.None); // align | 2191 | try renderToken(ais, tree, align_kw, Space.None); // align |
| 2194 | try renderToken(ais, tree, lparen, Space.None); // ( | 2192 | try renderToken(ais, tree, lparen, Space.None); // ( |
| 2195 | try renderExpression(allocator, ais, tree, align_node, Space.None); | 2193 | try renderExpression(ais, tree, align_node, Space.None); |
| 2196 | const s = if (var_decl.getSectionNode() != null or var_decl.getInitNode() != null) Space.Space else Space.None; | 2194 | const s = if (var_decl.getSectionNode() != null or var_decl.getInitNode() != null) Space.Space else Space.None; |
| 2197 | try renderToken(ais, tree, rparen, s); // ) | 2195 | try renderToken(ais, tree, rparen, s); // ) |
| 2198 | } | 2196 | } |
| ... | @@ -2203,7 +2201,7 @@ fn renderVarDecl( | ... | @@ -2203,7 +2201,7 @@ fn renderVarDecl( |
| 2203 | const rparen = tree.nextToken(section_node.lastToken()); | 2201 | const rparen = tree.nextToken(section_node.lastToken()); |
| 2204 | try renderToken(ais, tree, section_kw, Space.None); // linksection | 2202 | try renderToken(ais, tree, section_kw, Space.None); // linksection |
| 2205 | try renderToken(ais, tree, lparen, Space.None); // ( | 2203 | try renderToken(ais, tree, lparen, Space.None); // ( |
| 2206 | try renderExpression(allocator, ais, tree, section_node, Space.None); | 2204 | try renderExpression(ais, tree, section_node, Space.None); |
| 2207 | const s = if (var_decl.getInitNode() != null) Space.Space else Space.None; | 2205 | const s = if (var_decl.getInitNode() != null) Space.Space else Space.None; |
| 2208 | try renderToken(ais, tree, rparen, s); // ) | 2206 | try renderToken(ais, tree, rparen, s); // ) |
| 2209 | } | 2207 | } |
| ... | @@ -2221,7 +2219,7 @@ fn renderVarDecl( | ... | @@ -2221,7 +2219,7 @@ fn renderVarDecl( |
| 2221 | try renderToken(ais, tree, eq_token, eq_space); // = | 2219 | try renderToken(ais, tree, eq_token, eq_space); // = |
| 2222 | } | 2220 | } |
| 2223 | ais.pushIndentOneShot(); | 2221 | ais.pushIndentOneShot(); |
| 2224 | try renderExpression(allocator, ais, tree, init_node, Space.None); | 2222 | try renderExpression(ais, tree, init_node, Space.None); |
| 2225 | } | 2223 | } |
| 2226 | | 2224 | |
| 2227 | try renderToken(ais, tree, var_decl.semicolon_token, Space.Newline); | 2225 | try renderToken(ais, tree, var_decl.semicolon_token, Space.Newline); |
| ... | @@ -2234,7 +2232,7 @@ fn renderParamDecl( | ... | @@ -2234,7 +2232,7 @@ fn renderParamDecl( |
| 2234 | param_decl: ast.Node.FnProto.ParamDecl, | 2232 | param_decl: ast.Node.FnProto.ParamDecl, |
| 2235 | space: Space, | 2233 | space: Space, |
| 2236 | ) Error!void { | 2234 | ) Error!void { |
| 2237 | try renderDocComments(tree, ais, param_decl, param_decl.doc_comments); | 2235 | try renderDocComments(ais, tree, param_decl, param_decl.doc_comments); |
| 2238 | | 2236 | |
| 2239 | if (param_decl.comptime_token) |comptime_token| { | 2237 | if (param_decl.comptime_token) |comptime_token| { |
| 2240 | try renderToken(ais, tree, comptime_token, Space.Space); | 2238 | try renderToken(ais, tree, comptime_token, Space.Space); |
| ... | @@ -2247,7 +2245,7 @@ fn renderParamDecl( | ... | @@ -2247,7 +2245,7 @@ fn renderParamDecl( |
| 2247 | try renderToken(ais, tree, tree.nextToken(name_token), Space.Space); // : | 2245 | try renderToken(ais, tree, tree.nextToken(name_token), Space.Space); // : |
| 2248 | } | 2246 | } |
| 2249 | switch (param_decl.param_type) { | 2247 | switch (param_decl.param_type) { |
| 2250 | .any_type, .type_expr => |node| try renderExpression(allocator, ais, tree, node, space), | 2248 | .any_type, .type_expr => |node| try renderExpression(ais, tree, node, space), |
| 2251 | } | 2249 | } |
| 2252 | } | 2250 | } |
| 2253 | | 2251 | |
| ... | @@ -2260,13 +2258,13 @@ fn renderStatement(ais: *Ais, tree: ast.Tree, base: ast.Node.Index) Error!void { | ... | @@ -2260,13 +2258,13 @@ fn renderStatement(ais: *Ais, tree: ast.Tree, base: ast.Node.Index) Error!void { |
| 2260 | // }, | 2258 | // }, |
| 2261 | // else => { | 2259 | // else => { |
| 2262 | // if (base.requireSemiColon()) { | 2260 | // if (base.requireSemiColon()) { |
| 2263 | // try renderExpression(allocator, ais, tree, base, Space.None); | 2261 | // try renderExpression(ais, tree, base, Space.None); |
| 2264 | | 2262 | |
| 2265 | // const semicolon_index = tree.nextToken(base.lastToken()); | 2263 | // const semicolon_index = tree.nextToken(base.lastToken()); |
| 2266 | // assert(tree.token_tags[semicolon_index] == .Semicolon); | 2264 | // assert(tree.token_tags[semicolon_index] == .Semicolon); |
| 2267 | // try renderToken(ais, tree, semicolon_index, Space.Newline); | 2265 | // try renderToken(ais, tree, semicolon_index, Space.Newline); |
| 2268 | // } else { | 2266 | // } else { |
| 2269 | // try renderExpression(allocator, ais, tree, base, Space.Newline); | 2267 | // try renderExpression(ais, tree, base, Space.Newline); |
| 2270 | // } | 2268 | // } |
| 2271 | // }, | 2269 | // }, |
| 2272 | //} | 2270 | //} |
| ... | @@ -2338,34 +2336,32 @@ fn renderToken(ais: *Ais, tree: ast.Tree, token_index: ast.TokenIndex, space: Sp | ... | @@ -2338,34 +2336,32 @@ fn renderToken(ais: *Ais, tree: ast.Tree, token_index: ast.TokenIndex, space: Sp |
| 2338 | } | 2336 | } |
| 2339 | } | 2337 | } |
| 2340 | | 2338 | |
| 2341 | fn renderDocComments( | 2339 | /// end_token is the token one past the last doc comment token. This function |
| 2342 | tree: ast.Tree, | 2340 | /// searches backwards from there. |
| 2343 | ais: *Ais, | 2341 | fn renderDocComments(ais: *Ais, tree: ast.Tree, end_token: ast.TokenIndex) Error!void { |
| 2344 | node: anytype, | 2342 | // Search backwards for the first doc comment. |
| 2345 | doc_comments: ?ast.Node.Index.DocComment, | 2343 | const token_tags = tree.tokens.items(.tag); |
| 2346 | ) Error!void { | 2344 | if (end_token == 0) return; |
| 2347 | const comment = doc_comments orelse return; | 2345 | var tok = end_token - 1; |
| 2348 | return renderDocCommentsToken(tree, ais, comment, node.firstToken()); | 2346 | while (token_tags[tok] == .DocComment) { |
| 2349 | } | 2347 | if (tok == 0) break; |
| 2350 | | 2348 | tok -= 1; |
| 2351 | fn renderDocCommentsToken( | 2349 | } else { |
| 2352 | tree: ast.Tree, | 2350 | tok += 1; |
| 2353 | ais: *Ais, | 2351 | } |
| 2354 | comment: ast.Node.Index.DocComment, | 2352 | const first_tok = tok; |
| 2355 | first_token: ast.TokenIndex, | 2353 | if (tok == end_token) return; |
| 2356 | ) Error!void { | 2354 | |
| 2357 | var tok_i = comment.first_line; | 2355 | while (true) : (tok += 1) { |
| 2358 | while (true) : (tok_i += 1) { | 2356 | switch (token_tags[tok]) { |
| 2359 | switch (tree.token_tags[tok_i]) { | 2357 | .DocComment => { |
| 2360 | .DocComment, .ContainerDocComment => { | 2358 | if (first_tok < end_token) { |
| 2361 | if (comment.first_line < first_token) { | 2359 | try renderToken(ais, tree, tok, .Newline); |
| 2362 | try renderToken(ais, tree, tok_i, Space.Newline); | | |
| 2363 | } else { | 2360 | } else { |
| 2364 | try renderToken(ais, tree, tok_i, Space.NoComment); | 2361 | try renderToken(ais, tree, tok, .NoComment); |
| 2365 | try ais.insertNewline(); | 2362 | try ais.insertNewline(); |
| 2366 | } | 2363 | } |
| 2367 | }, | 2364 | }, |
| 2368 | .LineComment => continue, | | |
| 2369 | else => break, | 2365 | else => break, |
| 2370 | } | 2366 | } |
| 2371 | } | 2367 | } |