authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2021-02-12 01:40:13+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2021-02-12 02:14:07+02:00
log288e18059815f8c23f850dcc5cb3b2880f029ae9
tree9a75c3d97a02b21e0c75866778f30840d81f724a
parentbb22490fcc8ed7c96d665242cd18934f9d547555
signaturelock-open Commit is signed but in an unrecognized format.

snake_case render.Space


1 files changed, 386 insertions(+), 386 deletions(-)

lib/std/zig/render.zig+386-386
......@@ -86,7 +86,7 @@ fn renderRoot(ais: *Ais, tree: ast.Tree) Error!void {
8686 const root_decls = tree.extra_data[nodes_data[0].lhs..nodes_data[0].rhs];
8787
8888 for (root_decls) |decl| {
89 try renderMember(ais, tree, decl, .Newline);
89 try renderMember(ais, tree, decl, .newline);
9090 }
9191}
9292
......@@ -122,13 +122,13 @@ fn renderMember(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: Space) E
122122 }
123123 }
124124 while (i < fn_token) : (i += 1) {
125 try renderToken(ais, tree, i, .Space);
125 try renderToken(ais, tree, i, .space);
126126 }
127127 if (datas[decl].rhs != 0) {
128 try renderExpression(ais, tree, fn_proto, .Space);
128 try renderExpression(ais, tree, fn_proto, .space);
129129 return renderExpression(ais, tree, datas[decl].rhs, space);
130130 } else {
131 try renderExpression(ais, tree, fn_proto, .None);
131 try renderExpression(ais, tree, fn_proto, .none);
132132 return renderToken(ais, tree, tree.lastToken(fn_proto) + 1, space); // semicolon
133133 }
134134 },
......@@ -137,7 +137,7 @@ fn renderMember(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: Space) E
137137 .fn_proto_one,
138138 .fn_proto,
139139 => {
140 try renderExpression(ais, tree, decl, .None);
140 try renderExpression(ais, tree, decl, .none);
141141 return renderToken(ais, tree, tree.lastToken(decl) + 1, space); // semicolon
142142 },
143143
......@@ -145,10 +145,10 @@ fn renderMember(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: Space) E
145145 const main_token = main_tokens[decl];
146146 const expr = datas[decl].lhs;
147147 if (main_token > 0 and token_tags[main_token - 1] == .keyword_pub) {
148 try renderToken(ais, tree, main_token - 1, .Space); // pub
148 try renderToken(ais, tree, main_token - 1, .space); // pub
149149 }
150 try renderToken(ais, tree, main_token, .Space); // usingnamespace
151 try renderExpression(ais, tree, expr, .None);
150 try renderToken(ais, tree, main_token, .space); // usingnamespace
151 try renderExpression(ais, tree, expr, .none);
152152 return renderToken(ais, tree, tree.lastToken(expr) + 1, space); // ;
153153 },
154154
......@@ -159,9 +159,9 @@ fn renderMember(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: Space) E
159159
160160 .test_decl => {
161161 const test_token = main_tokens[decl];
162 try renderToken(ais, tree, test_token, .Space);
162 try renderToken(ais, tree, test_token, .space);
163163 if (token_tags[test_token + 1] == .string_literal) {
164 try renderToken(ais, tree, test_token + 1, .Space);
164 try renderToken(ais, tree, test_token + 1, .space);
165165 }
166166 try renderExpression(ais, tree, datas[decl].rhs, space);
167167 },
......@@ -196,8 +196,8 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
196196 => return renderToken(ais, tree, main_tokens[node], space),
197197
198198 .error_value => {
199 try renderToken(ais, tree, main_tokens[node], .None);
200 try renderToken(ais, tree, main_tokens[node] + 1, .None);
199 try renderToken(ais, tree, main_tokens[node], .none);
200 try renderToken(ais, tree, main_tokens[node] + 1, .none);
201201 return renderToken(ais, tree, main_tokens[node] + 2, space);
202202 },
203203
......@@ -227,11 +227,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
227227 const payload_token = datas[node].lhs;
228228 const expr = datas[node].rhs;
229229
230 try renderToken(ais, tree, defer_token, .Space);
230 try renderToken(ais, tree, defer_token, .space);
231231 if (payload_token != 0) {
232 try renderToken(ais, tree, payload_token - 1, .None); // |
233 try renderToken(ais, tree, payload_token, .None); // identifier
234 try renderToken(ais, tree, payload_token + 1, .Space); // |
232 try renderToken(ais, tree, payload_token - 1, .none); // |
233 try renderToken(ais, tree, payload_token, .none); // identifier
234 try renderToken(ais, tree, payload_token + 1, .space); // |
235235 }
236236 return renderExpression(ais, tree, expr, space);
237237 },
......@@ -239,13 +239,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
239239 .@"defer" => {
240240 const defer_token = main_tokens[node];
241241 const expr = datas[node].rhs;
242 try renderToken(ais, tree, defer_token, .Space);
242 try renderToken(ais, tree, defer_token, .space);
243243 return renderExpression(ais, tree, expr, space);
244244 },
245245 .@"comptime", .@"nosuspend" => {
246246 const comptime_token = main_tokens[node];
247247 const block = datas[node].lhs;
248 try renderToken(ais, tree, comptime_token, .Space);
248 try renderToken(ais, tree, comptime_token, .space);
249249 return renderExpression(ais, tree, block, space);
250250 },
251251
......@@ -253,7 +253,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
253253 const suspend_token = main_tokens[node];
254254 const body = datas[node].lhs;
255255 if (body != 0) {
256 try renderToken(ais, tree, suspend_token, .Space);
256 try renderToken(ais, tree, suspend_token, .space);
257257 return renderExpression(ais, tree, body, space);
258258 } else {
259259 return renderToken(ais, tree, suspend_token, space);
......@@ -265,14 +265,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
265265 const fallback_first = tree.firstToken(datas[node].rhs);
266266
267267 const same_line = tree.tokensOnSameLine(main_token, fallback_first);
268 const after_op_space = if (same_line) Space.Space else Space.Newline;
268 const after_op_space = if (same_line) Space.space else Space.newline;
269269
270 try renderExpression(ais, tree, datas[node].lhs, .Space); // target
270 try renderExpression(ais, tree, datas[node].lhs, .space); // target
271271
272272 if (token_tags[fallback_first - 1] == .pipe) {
273 try renderToken(ais, tree, main_token, .Space); // catch keyword
274 try renderToken(ais, tree, main_token + 1, .None); // pipe
275 try renderToken(ais, tree, main_token + 2, .None); // payload identifier
273 try renderToken(ais, tree, main_token, .space); // catch keyword
274 try renderToken(ais, tree, main_token + 1, .none); // pipe
275 try renderToken(ais, tree, main_token + 2, .none); // payload identifier
276276 try renderToken(ais, tree, main_token + 3, after_op_space); // pipe
277277 } else {
278278 assert(token_tags[fallback_first - 1] == .keyword_catch);
......@@ -285,8 +285,8 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
285285
286286 .field_access => {
287287 const field_access = datas[node];
288 try renderExpression(ais, tree, field_access.lhs, .None);
289 try renderToken(ais, tree, main_tokens[node], .None);
288 try renderExpression(ais, tree, field_access.lhs, .none);
289 try renderToken(ais, tree, main_tokens[node], .none);
290290 return renderToken(ais, tree, field_access.rhs, space);
291291 },
292292
......@@ -294,8 +294,8 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
294294 .switch_range,
295295 => {
296296 const infix = datas[node];
297 try renderExpression(ais, tree, infix.lhs, .None);
298 try renderToken(ais, tree, main_tokens[node], .None);
297 try renderExpression(ais, tree, infix.lhs, .none);
298 try renderToken(ais, tree, main_tokens[node], .none);
299299 return renderExpression(ais, tree, infix.rhs, space);
300300 },
301301
......@@ -340,13 +340,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
340340 .@"orelse",
341341 => {
342342 const infix = datas[node];
343 try renderExpression(ais, tree, infix.lhs, .Space);
343 try renderExpression(ais, tree, infix.lhs, .space);
344344 const op_token = main_tokens[node];
345345 if (tree.tokensOnSameLine(op_token, op_token + 1)) {
346 try renderToken(ais, tree, op_token, .Space);
346 try renderToken(ais, tree, op_token, .space);
347347 } else {
348348 ais.pushIndent();
349 try renderToken(ais, tree, op_token, .Newline);
349 try renderToken(ais, tree, op_token, .newline);
350350 ais.popIndent();
351351 ais.pushIndentOneShot();
352352 }
......@@ -360,7 +360,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
360360 .optional_type,
361361 .address_of,
362362 => {
363 try renderToken(ais, tree, main_tokens[node], .None);
363 try renderToken(ais, tree, main_tokens[node], .none);
364364 return renderExpression(ais, tree, datas[node].lhs, space);
365365 },
366366
......@@ -368,7 +368,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
368368 .@"resume",
369369 .@"await",
370370 => {
371 try renderToken(ais, tree, main_tokens[node], .Space);
371 try renderToken(ais, tree, main_tokens[node], .space);
372372 return renderExpression(ais, tree, datas[node].lhs, space);
373373 },
374374
......@@ -425,9 +425,9 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
425425 const suffix = datas[node];
426426 const lbracket = tree.firstToken(suffix.rhs) - 1;
427427 const rbracket = tree.lastToken(suffix.rhs) + 1;
428 try renderExpression(ais, tree, suffix.lhs, .None);
429 try renderToken(ais, tree, lbracket, .None); // [
430 try renderExpression(ais, tree, suffix.rhs, .None);
428 try renderExpression(ais, tree, suffix.lhs, .none);
429 try renderToken(ais, tree, lbracket, .none); // [
430 try renderExpression(ais, tree, suffix.rhs, .none);
431431 return renderToken(ais, tree, rbracket, space); // ]
432432 },
433433
......@@ -436,13 +436,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
436436 .slice_sentinel => try renderSlice(ais, tree, tree.sliceSentinel(node), space),
437437
438438 .deref => {
439 try renderExpression(ais, tree, datas[node].lhs, .None);
439 try renderExpression(ais, tree, datas[node].lhs, .none);
440440 return renderToken(ais, tree, main_tokens[node], space);
441441 },
442442
443443 .unwrap_optional => {
444 try renderExpression(ais, tree, datas[node].lhs, .None);
445 try renderToken(ais, tree, main_tokens[node], .None);
444 try renderExpression(ais, tree, datas[node].lhs, .none);
445 try renderToken(ais, tree, main_tokens[node], .none);
446446 return renderToken(ais, tree, datas[node].rhs, space);
447447 },
448448
......@@ -453,16 +453,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
453453 if (label_token == 0 and target == 0) {
454454 try renderToken(ais, tree, main_token, space); // break keyword
455455 } else if (label_token == 0 and target != 0) {
456 try renderToken(ais, tree, main_token, .Space); // break keyword
456 try renderToken(ais, tree, main_token, .space); // break keyword
457457 try renderExpression(ais, tree, target, space);
458458 } else if (label_token != 0 and target == 0) {
459 try renderToken(ais, tree, main_token, .Space); // break keyword
460 try renderToken(ais, tree, label_token - 1, .None); // colon
459 try renderToken(ais, tree, main_token, .space); // break keyword
460 try renderToken(ais, tree, label_token - 1, .none); // colon
461461 try renderToken(ais, tree, label_token, space); // identifier
462462 } else if (label_token != 0 and target != 0) {
463 try renderToken(ais, tree, main_token, .Space); // break keyword
464 try renderToken(ais, tree, label_token - 1, .None); // colon
465 try renderToken(ais, tree, label_token, .Space); // identifier
463 try renderToken(ais, tree, main_token, .space); // break keyword
464 try renderToken(ais, tree, label_token - 1, .none); // colon
465 try renderToken(ais, tree, label_token, .space); // identifier
466466 try renderExpression(ais, tree, target, space);
467467 }
468468 },
......@@ -471,8 +471,8 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
471471 const main_token = main_tokens[node];
472472 const label = datas[node].lhs;
473473 if (label != 0) {
474 try renderToken(ais, tree, main_token, .Space); // continue
475 try renderToken(ais, tree, label - 1, .None); // :
474 try renderToken(ais, tree, main_token, .space); // continue
475 try renderToken(ais, tree, label - 1, .none); // :
476476 return renderToken(ais, tree, label, space); // label
477477 } else {
478478 return renderToken(ais, tree, main_token, space); // continue
......@@ -481,7 +481,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
481481
482482 .@"return" => {
483483 if (datas[node].lhs != 0) {
484 try renderToken(ais, tree, main_tokens[node], .Space);
484 try renderToken(ais, tree, main_tokens[node], .space);
485485 try renderExpression(ais, tree, datas[node].lhs, space);
486486 } else {
487487 try renderToken(ais, tree, main_tokens[node], space);
......@@ -490,8 +490,8 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
490490
491491 .grouped_expression => {
492492 ais.pushIndentNextLine();
493 try renderToken(ais, tree, main_tokens[node], .None); // lparen
494 try renderExpression(ais, tree, datas[node].lhs, .None);
493 try renderToken(ais, tree, main_tokens[node], .none); // lparen
494 try renderExpression(ais, tree, datas[node].lhs, .none);
495495 ais.popIndent();
496496 return renderToken(ais, tree, datas[node].rhs, space); // rparen
497497 },
......@@ -526,27 +526,27 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
526526 const lbrace = error_token + 1;
527527 const rbrace = datas[node].rhs;
528528
529 try renderToken(ais, tree, error_token, .None);
529 try renderToken(ais, tree, error_token, .none);
530530
531531 if (lbrace + 1 == rbrace) {
532532 // There is nothing between the braces so render condensed: `error{}`
533 try renderToken(ais, tree, lbrace, .None);
533 try renderToken(ais, tree, lbrace, .none);
534534 return renderToken(ais, tree, rbrace, space);
535535 } else if (lbrace + 2 == rbrace and token_tags[lbrace + 1] == .identifier) {
536536 // There is exactly one member and no trailing comma or
537537 // comments, so render without surrounding spaces: `error{Foo}`
538 try renderToken(ais, tree, lbrace, .None);
539 try renderToken(ais, tree, lbrace + 1, .None); // identifier
538 try renderToken(ais, tree, lbrace, .none);
539 try renderToken(ais, tree, lbrace + 1, .none); // identifier
540540 return renderToken(ais, tree, rbrace, space);
541541 } else if (token_tags[rbrace - 1] == .comma) {
542542 // There is a trailing comma so render each member on a new line.
543 try renderToken(ais, tree, lbrace, .Newline);
543 try renderToken(ais, tree, lbrace, .newline);
544544 ais.pushIndent();
545545 var i = lbrace + 1;
546546 while (i < rbrace) : (i += 1) {
547547 switch (token_tags[i]) {
548 .doc_comment => try renderToken(ais, tree, i, .Newline),
549 .identifier => try renderToken(ais, tree, i, .Comma),
548 .doc_comment => try renderToken(ais, tree, i, .newline),
549 .identifier => try renderToken(ais, tree, i, .comma),
550550 .comma => {},
551551 else => unreachable,
552552 }
......@@ -555,12 +555,12 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
555555 return renderToken(ais, tree, rbrace, space);
556556 } else {
557557 // There is no trailing comma so render everything on one line.
558 try renderToken(ais, tree, lbrace, .Space);
558 try renderToken(ais, tree, lbrace, .space);
559559 var i = lbrace + 1;
560560 while (i < rbrace) : (i += 1) {
561561 switch (token_tags[i]) {
562562 .doc_comment => unreachable, // TODO
563 .identifier => try renderToken(ais, tree, i, .CommaSpace),
563 .identifier => try renderToken(ais, tree, i, .comma_space),
564564 .comma => {},
565565 else => unreachable,
566566 }
......@@ -600,8 +600,8 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
600600 .anyframe_type => {
601601 const main_token = main_tokens[node];
602602 if (datas[node].rhs != 0) {
603 try renderToken(ais, tree, main_token, .None); // anyframe
604 try renderToken(ais, tree, main_token + 1, .None); // ->
603 try renderToken(ais, tree, main_token, .none); // anyframe
604 try renderToken(ais, tree, main_token + 1, .none); // ->
605605 return renderExpression(ais, tree, datas[node].rhs, space);
606606 } else {
607607 return renderToken(ais, tree, main_token, space); // anyframe
......@@ -617,19 +617,19 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
617617 const cases = tree.extra_data[extra.start..extra.end];
618618 const rparen = tree.lastToken(condition) + 1;
619619
620 try renderToken(ais, tree, switch_token, .Space); // switch keyword
621 try renderToken(ais, tree, switch_token + 1, .None); // lparen
622 try renderExpression(ais, tree, condition, .None); // condtion expression
623 try renderToken(ais, tree, rparen, .Space); // rparen
620 try renderToken(ais, tree, switch_token, .space); // switch keyword
621 try renderToken(ais, tree, switch_token + 1, .none); // lparen
622 try renderExpression(ais, tree, condition, .none); // condtion expression
623 try renderToken(ais, tree, rparen, .space); // rparen
624624
625625 if (cases.len == 0) {
626 try renderToken(ais, tree, rparen + 1, .None); // lbrace
626 try renderToken(ais, tree, rparen + 1, .none); // lbrace
627627 return renderToken(ais, tree, rparen + 2, space); // rbrace
628628 }
629629 ais.pushIndentNextLine();
630 try renderToken(ais, tree, rparen + 1, .Newline); // lbrace
630 try renderToken(ais, tree, rparen + 1, .newline); // lbrace
631631 for (cases) |case| {
632 try renderExpression(ais, tree, case, .Comma);
632 try renderExpression(ais, tree, case, .comma);
633633 }
634634 ais.popIndent();
635635 return renderToken(ais, tree, tree.lastToken(node), space); // rbrace
......@@ -651,7 +651,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac
651651 .@"asm" => return renderAsm(ais, tree, tree.asmFull(node), space),
652652
653653 .enum_literal => {
654 try renderToken(ais, tree, main_tokens[node] - 1, .None); // .
654 try renderToken(ais, tree, main_tokens[node] - 1, .none); // .
655655 return renderToken(ais, tree, main_tokens[node], space); // name
656656 },
657657
......@@ -678,13 +678,13 @@ fn renderArrayType(
678678 array_type: ast.full.ArrayType,
679679 space: Space,
680680) Error!void {
681 try renderToken(ais, tree, array_type.ast.lbracket, .None); // lbracket
682 try renderExpression(ais, tree, array_type.ast.elem_count, .None);
681 try renderToken(ais, tree, array_type.ast.lbracket, .none); // lbracket
682 try renderExpression(ais, tree, array_type.ast.elem_count, .none);
683683 if (array_type.ast.sentinel) |sentinel| {
684 try renderToken(ais, tree, tree.firstToken(sentinel) - 1, .None); // colon
685 try renderExpression(ais, tree, sentinel, .None);
684 try renderToken(ais, tree, tree.firstToken(sentinel) - 1, .none); // colon
685 try renderExpression(ais, tree, sentinel, .none);
686686 }
687 try renderToken(ais, tree, tree.firstToken(array_type.ast.elem_type) - 1, .None); // rbracket
687 try renderToken(ais, tree, tree.firstToken(array_type.ast.elem_type) - 1, .none); // rbracket
688688 return renderExpression(ais, tree, array_type.ast.elem_type, space);
689689}
690690
......@@ -706,65 +706,65 @@ fn renderPtrType(
706706 {
707707 return renderExpression(ais, tree, ptr_type.ast.child_type, space);
708708 }
709 try renderToken(ais, tree, ptr_type.ast.main_token, .None); // asterisk
709 try renderToken(ais, tree, ptr_type.ast.main_token, .none); // asterisk
710710 },
711711 .many => {
712 try renderToken(ais, tree, ptr_type.ast.main_token - 1, .None); // lbracket
713 try renderToken(ais, tree, ptr_type.ast.main_token, .None); // asterisk
714 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .None); // rbracket
712 try renderToken(ais, tree, ptr_type.ast.main_token - 1, .none); // lbracket
713 try renderToken(ais, tree, ptr_type.ast.main_token, .none); // asterisk
714 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .none); // rbracket
715715 },
716716 .sentinel => {
717 try renderToken(ais, tree, ptr_type.ast.main_token - 1, .None); // lbracket
718 try renderToken(ais, tree, ptr_type.ast.main_token, .None); // asterisk
719 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .None); // colon
720 try renderExpression(ais, tree, ptr_type.ast.sentinel, .None);
721 try renderToken(ais, tree, tree.lastToken(ptr_type.ast.sentinel) + 1, .None); // rbracket
717 try renderToken(ais, tree, ptr_type.ast.main_token - 1, .none); // lbracket
718 try renderToken(ais, tree, ptr_type.ast.main_token, .none); // asterisk
719 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .none); // colon
720 try renderExpression(ais, tree, ptr_type.ast.sentinel, .none);
721 try renderToken(ais, tree, tree.lastToken(ptr_type.ast.sentinel) + 1, .none); // rbracket
722722 },
723723 .c => {
724 try renderToken(ais, tree, ptr_type.ast.main_token - 1, .None); // lbracket
725 try renderToken(ais, tree, ptr_type.ast.main_token, .None); // asterisk
726 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .None); // c
727 try renderToken(ais, tree, ptr_type.ast.main_token + 2, .None); // rbracket
724 try renderToken(ais, tree, ptr_type.ast.main_token - 1, .none); // lbracket
725 try renderToken(ais, tree, ptr_type.ast.main_token, .none); // asterisk
726 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .none); // c
727 try renderToken(ais, tree, ptr_type.ast.main_token + 2, .none); // rbracket
728728 },
729729 .slice => {
730 try renderToken(ais, tree, ptr_type.ast.main_token, .None); // lbracket
731 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .None); // rbracket
730 try renderToken(ais, tree, ptr_type.ast.main_token, .none); // lbracket
731 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .none); // rbracket
732732 },
733733 .slice_sentinel => {
734 try renderToken(ais, tree, ptr_type.ast.main_token, .None); // lbracket
735 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .None); // colon
736 try renderExpression(ais, tree, ptr_type.ast.sentinel, .None);
737 try renderToken(ais, tree, tree.lastToken(ptr_type.ast.sentinel) + 1, .None); // rbracket
734 try renderToken(ais, tree, ptr_type.ast.main_token, .none); // lbracket
735 try renderToken(ais, tree, ptr_type.ast.main_token + 1, .none); // colon
736 try renderExpression(ais, tree, ptr_type.ast.sentinel, .none);
737 try renderToken(ais, tree, tree.lastToken(ptr_type.ast.sentinel) + 1, .none); // rbracket
738738 },
739739 }
740740
741741 if (ptr_type.allowzero_token) |allowzero_token| {
742 try renderToken(ais, tree, allowzero_token, .Space);
742 try renderToken(ais, tree, allowzero_token, .space);
743743 }
744744
745745 if (ptr_type.ast.align_node != 0) {
746746 const align_first = tree.firstToken(ptr_type.ast.align_node);
747 try renderToken(ais, tree, align_first - 2, .None); // align
748 try renderToken(ais, tree, align_first - 1, .None); // lparen
749 try renderExpression(ais, tree, ptr_type.ast.align_node, .None);
747 try renderToken(ais, tree, align_first - 2, .none); // align
748 try renderToken(ais, tree, align_first - 1, .none); // lparen
749 try renderExpression(ais, tree, ptr_type.ast.align_node, .none);
750750 if (ptr_type.ast.bit_range_start != 0) {
751751 assert(ptr_type.ast.bit_range_end != 0);
752 try renderToken(ais, tree, tree.firstToken(ptr_type.ast.bit_range_start) - 1, .None); // colon
753 try renderExpression(ais, tree, ptr_type.ast.bit_range_start, .None);
754 try renderToken(ais, tree, tree.firstToken(ptr_type.ast.bit_range_end) - 1, .None); // colon
755 try renderExpression(ais, tree, ptr_type.ast.bit_range_end, .None);
756 try renderToken(ais, tree, tree.lastToken(ptr_type.ast.bit_range_end) + 1, .Space); // rparen
752 try renderToken(ais, tree, tree.firstToken(ptr_type.ast.bit_range_start) - 1, .none); // colon
753 try renderExpression(ais, tree, ptr_type.ast.bit_range_start, .none);
754 try renderToken(ais, tree, tree.firstToken(ptr_type.ast.bit_range_end) - 1, .none); // colon
755 try renderExpression(ais, tree, ptr_type.ast.bit_range_end, .none);
756 try renderToken(ais, tree, tree.lastToken(ptr_type.ast.bit_range_end) + 1, .space); // rparen
757757 } else {
758 try renderToken(ais, tree, tree.lastToken(ptr_type.ast.align_node) + 1, .Space); // rparen
758 try renderToken(ais, tree, tree.lastToken(ptr_type.ast.align_node) + 1, .space); // rparen
759759 }
760760 }
761761
762762 if (ptr_type.const_token) |const_token| {
763 try renderToken(ais, tree, const_token, .Space);
763 try renderToken(ais, tree, const_token, .space);
764764 }
765765
766766 if (ptr_type.volatile_token) |volatile_token| {
767 try renderToken(ais, tree, volatile_token, .Space);
767 try renderToken(ais, tree, volatile_token, .space);
768768 }
769769
770770 try renderExpression(ais, tree, ptr_type.ast.child_type, space);
......@@ -779,11 +779,11 @@ fn renderSlice(
779779 const node_tags = tree.nodes.items(.tag);
780780 const after_start_space_bool = nodeCausesSliceOpSpace(node_tags[slice.ast.start]) or
781781 if (slice.ast.end != 0) nodeCausesSliceOpSpace(node_tags[slice.ast.end]) else false;
782 const after_start_space = if (after_start_space_bool) Space.Space else Space.None;
783 const after_dots_space = if (slice.ast.end != 0) after_start_space else Space.None;
782 const after_start_space = if (after_start_space_bool) Space.space else Space.none;
783 const after_dots_space = if (slice.ast.end != 0) after_start_space else Space.none;
784784
785 try renderExpression(ais, tree, slice.ast.sliced, .None);
786 try renderToken(ais, tree, slice.ast.lbracket, .None); // lbracket
785 try renderExpression(ais, tree, slice.ast.sliced, .none);
786 try renderToken(ais, tree, slice.ast.lbracket, .none); // lbracket
787787
788788 const start_last = tree.lastToken(slice.ast.start);
789789 try renderExpression(ais, tree, slice.ast.start, after_start_space);
......@@ -793,14 +793,14 @@ fn renderSlice(
793793 }
794794
795795 const end_last = tree.lastToken(slice.ast.end);
796 const after_end_space = if (slice.ast.sentinel != 0) Space.Space else Space.None;
796 const after_end_space = if (slice.ast.sentinel != 0) Space.space else Space.none;
797797 try renderExpression(ais, tree, slice.ast.end, after_end_space);
798798 if (slice.ast.sentinel == 0) {
799799 return renderToken(ais, tree, end_last + 1, space); // rbracket
800800 }
801801
802 try renderToken(ais, tree, end_last + 1, .None); // colon
803 try renderExpression(ais, tree, slice.ast.sentinel, .None);
802 try renderToken(ais, tree, end_last + 1, .none); // colon
803 try renderExpression(ais, tree, slice.ast.sentinel, .none);
804804 try renderToken(ais, tree, tree.lastToken(slice.ast.sentinel) + 1, space); // rbracket
805805}
806806
......@@ -817,18 +817,18 @@ fn renderAsmOutput(
817817 assert(node_tags[asm_output] == .asm_output);
818818 const symbolic_name = main_tokens[asm_output];
819819
820 try renderToken(ais, tree, symbolic_name - 1, .None); // lbracket
821 try renderToken(ais, tree, symbolic_name, .None); // ident
822 try renderToken(ais, tree, symbolic_name + 1, .Space); // rbracket
823 try renderToken(ais, tree, symbolic_name + 2, .Space); // "constraint"
824 try renderToken(ais, tree, symbolic_name + 3, .None); // lparen
820 try renderToken(ais, tree, symbolic_name - 1, .none); // lbracket
821 try renderToken(ais, tree, symbolic_name, .none); // ident
822 try renderToken(ais, tree, symbolic_name + 1, .space); // rbracket
823 try renderToken(ais, tree, symbolic_name + 2, .space); // "constraint"
824 try renderToken(ais, tree, symbolic_name + 3, .none); // lparen
825825
826826 if (token_tags[symbolic_name + 4] == .arrow) {
827 try renderToken(ais, tree, symbolic_name + 4, .Space); // ->
828 try renderExpression(ais, tree, datas[asm_output].lhs, Space.None);
827 try renderToken(ais, tree, symbolic_name + 4, .space); // ->
828 try renderExpression(ais, tree, datas[asm_output].lhs, Space.none);
829829 return renderToken(ais, tree, datas[asm_output].rhs, space); // rparen
830830 } else {
831 try renderToken(ais, tree, symbolic_name + 4, .None); // ident
831 try renderToken(ais, tree, symbolic_name + 4, .none); // ident
832832 return renderToken(ais, tree, symbolic_name + 5, space); // rparen
833833 }
834834}
......@@ -845,57 +845,57 @@ fn renderAsmInput(
845845 assert(node_tags[asm_input] == .asm_input);
846846 const symbolic_name = main_tokens[asm_input];
847847
848 try renderToken(ais, tree, symbolic_name - 1, .None); // lbracket
849 try renderToken(ais, tree, symbolic_name, .None); // ident
850 try renderToken(ais, tree, symbolic_name + 1, .Space); // rbracket
851 try renderToken(ais, tree, symbolic_name + 2, .Space); // "constraint"
852 try renderToken(ais, tree, symbolic_name + 3, .None); // lparen
853 try renderExpression(ais, tree, datas[asm_input].lhs, Space.None);
848 try renderToken(ais, tree, symbolic_name - 1, .none); // lbracket
849 try renderToken(ais, tree, symbolic_name, .none); // ident
850 try renderToken(ais, tree, symbolic_name + 1, .space); // rbracket
851 try renderToken(ais, tree, symbolic_name + 2, .space); // "constraint"
852 try renderToken(ais, tree, symbolic_name + 3, .none); // lparen
853 try renderExpression(ais, tree, datas[asm_input].lhs, Space.none);
854854 return renderToken(ais, tree, datas[asm_input].rhs, space); // rparen
855855}
856856
857857fn renderVarDecl(ais: *Ais, tree: ast.Tree, var_decl: ast.full.VarDecl) Error!void {
858858 if (var_decl.visib_token) |visib_token| {
859 try renderToken(ais, tree, visib_token, Space.Space); // pub
859 try renderToken(ais, tree, visib_token, Space.space); // pub
860860 }
861861
862862 if (var_decl.extern_export_token) |extern_export_token| {
863 try renderToken(ais, tree, extern_export_token, Space.Space); // extern
863 try renderToken(ais, tree, extern_export_token, Space.space); // extern
864864
865865 if (var_decl.lib_name) |lib_name| {
866 try renderExpression(ais, tree, lib_name, Space.Space); // "lib"
866 try renderExpression(ais, tree, lib_name, Space.space); // "lib"
867867 }
868868 }
869869
870870 if (var_decl.threadlocal_token) |thread_local_token| {
871 try renderToken(ais, tree, thread_local_token, Space.Space); // threadlocal
871 try renderToken(ais, tree, thread_local_token, Space.space); // threadlocal
872872 }
873873
874874 if (var_decl.comptime_token) |comptime_token| {
875 try renderToken(ais, tree, comptime_token, Space.Space); // comptime
875 try renderToken(ais, tree, comptime_token, Space.space); // comptime
876876 }
877877
878 try renderToken(ais, tree, var_decl.ast.mut_token, .Space); // var
878 try renderToken(ais, tree, var_decl.ast.mut_token, .space); // var
879879
880880 const name_space = if (var_decl.ast.type_node == 0 and
881881 (var_decl.ast.align_node != 0 or
882882 var_decl.ast.section_node != 0 or
883883 var_decl.ast.init_node != 0))
884 Space.Space
884 Space.space
885885 else
886 Space.None;
886 Space.none;
887887 try renderToken(ais, tree, var_decl.ast.mut_token + 1, name_space); // name
888888
889889 if (var_decl.ast.type_node != 0) {
890 try renderToken(ais, tree, var_decl.ast.mut_token + 2, Space.Space); // :
890 try renderToken(ais, tree, var_decl.ast.mut_token + 2, Space.space); // :
891891 if (var_decl.ast.align_node != 0 or var_decl.ast.section_node != 0 or
892892 var_decl.ast.init_node != 0)
893893 {
894 try renderExpression(ais, tree, var_decl.ast.type_node, .Space);
894 try renderExpression(ais, tree, var_decl.ast.type_node, .space);
895895 } else {
896 try renderExpression(ais, tree, var_decl.ast.type_node, .None);
896 try renderExpression(ais, tree, var_decl.ast.type_node, .none);
897897 const semicolon = tree.lastToken(var_decl.ast.type_node) + 1;
898 return renderToken(ais, tree, semicolon, Space.Newline); // ;
898 return renderToken(ais, tree, semicolon, Space.newline); // ;
899899 }
900900 }
901901
......@@ -903,14 +903,14 @@ fn renderVarDecl(ais: *Ais, tree: ast.Tree, var_decl: ast.full.VarDecl) Error!vo
903903 const lparen = tree.firstToken(var_decl.ast.align_node) - 1;
904904 const align_kw = lparen - 1;
905905 const rparen = tree.lastToken(var_decl.ast.align_node) + 1;
906 try renderToken(ais, tree, align_kw, Space.None); // align
907 try renderToken(ais, tree, lparen, Space.None); // (
908 try renderExpression(ais, tree, var_decl.ast.align_node, Space.None);
906 try renderToken(ais, tree, align_kw, Space.none); // align
907 try renderToken(ais, tree, lparen, Space.none); // (
908 try renderExpression(ais, tree, var_decl.ast.align_node, Space.none);
909909 if (var_decl.ast.section_node != 0 or var_decl.ast.init_node != 0) {
910 try renderToken(ais, tree, rparen, .Space); // )
910 try renderToken(ais, tree, rparen, .space); // )
911911 } else {
912 try renderToken(ais, tree, rparen, .None); // )
913 return renderToken(ais, tree, rparen + 1, Space.Newline); // ;
912 try renderToken(ais, tree, rparen, .none); // )
913 return renderToken(ais, tree, rparen + 1, Space.newline); // ;
914914 }
915915 }
916916
......@@ -918,27 +918,27 @@ fn renderVarDecl(ais: *Ais, tree: ast.Tree, var_decl: ast.full.VarDecl) Error!vo
918918 const lparen = tree.firstToken(var_decl.ast.section_node) - 1;
919919 const section_kw = lparen - 1;
920920 const rparen = tree.lastToken(var_decl.ast.section_node) + 1;
921 try renderToken(ais, tree, section_kw, Space.None); // linksection
922 try renderToken(ais, tree, lparen, Space.None); // (
923 try renderExpression(ais, tree, var_decl.ast.section_node, Space.None);
921 try renderToken(ais, tree, section_kw, Space.none); // linksection
922 try renderToken(ais, tree, lparen, Space.none); // (
923 try renderExpression(ais, tree, var_decl.ast.section_node, Space.none);
924924 if (var_decl.ast.init_node != 0) {
925 try renderToken(ais, tree, rparen, .Space); // )
925 try renderToken(ais, tree, rparen, .space); // )
926926 } else {
927 try renderToken(ais, tree, rparen, .None); // )
928 return renderToken(ais, tree, rparen + 1, Space.Newline); // ;
927 try renderToken(ais, tree, rparen, .none); // )
928 return renderToken(ais, tree, rparen + 1, Space.newline); // ;
929929 }
930930 }
931931
932932 assert(var_decl.ast.init_node != 0);
933933 const eq_token = tree.firstToken(var_decl.ast.init_node) - 1;
934 const eq_space: Space = if (tree.tokensOnSameLine(eq_token, eq_token + 1)) .Space else .Newline;
934 const eq_space: Space = if (tree.tokensOnSameLine(eq_token, eq_token + 1)) .space else .newline;
935935 {
936936 ais.pushIndent();
937937 try renderToken(ais, tree, eq_token, eq_space); // =
938938 ais.popIndent();
939939 }
940940 ais.pushIndentOneShot();
941 try renderExpression(ais, tree, var_decl.ast.init_node, .Semicolon);
941 try renderExpression(ais, tree, var_decl.ast.init_node, .semicolon);
942942}
943943
944944fn renderIf(ais: *Ais, tree: ast.Tree, if_node: ast.full.If, space: Space) Error!void {
......@@ -965,60 +965,60 @@ fn renderWhile(ais: *Ais, tree: ast.Tree, while_node: ast.full.While, space: Spa
965965 const token_tags = tree.tokens.items(.tag);
966966
967967 if (while_node.label_token) |label| {
968 try renderToken(ais, tree, label, .None); // label
969 try renderToken(ais, tree, label + 1, .Space); // :
968 try renderToken(ais, tree, label, .none); // label
969 try renderToken(ais, tree, label + 1, .space); // :
970970 }
971971
972972 if (while_node.inline_token) |inline_token| {
973 try renderToken(ais, tree, inline_token, .Space); // inline
973 try renderToken(ais, tree, inline_token, .space); // inline
974974 }
975975
976 try renderToken(ais, tree, while_node.ast.while_token, .Space); // if
977 try renderToken(ais, tree, while_node.ast.while_token + 1, .None); // (
978 try renderExpression(ais, tree, while_node.ast.cond_expr, .None); // condition
976 try renderToken(ais, tree, while_node.ast.while_token, .space); // if
977 try renderToken(ais, tree, while_node.ast.while_token + 1, .none); // (
978 try renderExpression(ais, tree, while_node.ast.cond_expr, .none); // condition
979979
980980 if (nodeIsBlock(node_tags[while_node.ast.then_expr])) {
981981 if (while_node.payload_token) |payload_token| {
982 try renderToken(ais, tree, payload_token - 2, .Space); // )
983 try renderToken(ais, tree, payload_token - 1, .None); // |
982 try renderToken(ais, tree, payload_token - 2, .space); // )
983 try renderToken(ais, tree, payload_token - 1, .none); // |
984984 const ident = blk: {
985985 if (token_tags[payload_token] == .asterisk) {
986 try renderToken(ais, tree, payload_token, .None); // *
986 try renderToken(ais, tree, payload_token, .none); // *
987987 break :blk payload_token + 1;
988988 } else {
989989 break :blk payload_token;
990990 }
991991 };
992 try renderToken(ais, tree, ident, .None); // identifier
992 try renderToken(ais, tree, ident, .none); // identifier
993993 const pipe = blk: {
994994 if (token_tags[ident + 1] == .comma) {
995 try renderToken(ais, tree, ident + 1, .Space); // ,
996 try renderToken(ais, tree, ident + 2, .None); // index
995 try renderToken(ais, tree, ident + 1, .space); // ,
996 try renderToken(ais, tree, ident + 2, .none); // index
997997 break :blk payload_token + 3;
998998 } else {
999999 break :blk ident + 1;
10001000 }
10011001 };
1002 try renderToken(ais, tree, pipe, .Space); // |
1002 try renderToken(ais, tree, pipe, .space); // |
10031003 } else {
10041004 const rparen = tree.lastToken(while_node.ast.cond_expr) + 1;
1005 try renderToken(ais, tree, rparen, .Space); // )
1005 try renderToken(ais, tree, rparen, .space); // )
10061006 }
10071007 if (while_node.ast.cont_expr != 0) {
10081008 const rparen = tree.lastToken(while_node.ast.cont_expr) + 1;
10091009 const lparen = tree.firstToken(while_node.ast.cont_expr) - 1;
1010 try renderToken(ais, tree, lparen - 1, .Space); // :
1011 try renderToken(ais, tree, lparen, .None); // lparen
1012 try renderExpression(ais, tree, while_node.ast.cont_expr, .None);
1013 try renderToken(ais, tree, rparen, .Space); // rparen
1010 try renderToken(ais, tree, lparen - 1, .space); // :
1011 try renderToken(ais, tree, lparen, .none); // lparen
1012 try renderExpression(ais, tree, while_node.ast.cont_expr, .none);
1013 try renderToken(ais, tree, rparen, .space); // rparen
10141014 }
10151015 if (while_node.ast.else_expr != 0) {
1016 try renderExpression(ais, tree, while_node.ast.then_expr, Space.Space);
1017 try renderToken(ais, tree, while_node.else_token, .Space); // else
1016 try renderExpression(ais, tree, while_node.ast.then_expr, Space.space);
1017 try renderToken(ais, tree, while_node.else_token, .space); // else
10181018 if (while_node.error_token) |error_token| {
1019 try renderToken(ais, tree, error_token - 1, .None); // |
1020 try renderToken(ais, tree, error_token, .None); // identifier
1021 try renderToken(ais, tree, error_token + 1, .Space); // |
1019 try renderToken(ais, tree, error_token - 1, .none); // |
1020 try renderToken(ais, tree, error_token, .none); // identifier
1021 try renderToken(ais, tree, error_token + 1, .space); // |
10221022 }
10231023 return renderExpression(ais, tree, while_node.ast.else_expr, space);
10241024 } else {
......@@ -1032,61 +1032,61 @@ fn renderWhile(ais: *Ais, tree: ast.Tree, while_node: ast.full.While, space: Spa
10321032
10331033 if (src_has_newline) {
10341034 if (while_node.payload_token) |payload_token| {
1035 try renderToken(ais, tree, payload_token - 2, .Space); // )
1036 try renderToken(ais, tree, payload_token - 1, .None); // |
1035 try renderToken(ais, tree, payload_token - 2, .space); // )
1036 try renderToken(ais, tree, payload_token - 1, .none); // |
10371037 const ident = blk: {
10381038 if (token_tags[payload_token] == .asterisk) {
1039 try renderToken(ais, tree, payload_token, .None); // *
1039 try renderToken(ais, tree, payload_token, .none); // *
10401040 break :blk payload_token + 1;
10411041 } else {
10421042 break :blk payload_token;
10431043 }
10441044 };
1045 try renderToken(ais, tree, ident, .None); // identifier
1045 try renderToken(ais, tree, ident, .none); // identifier
10461046 const pipe = blk: {
10471047 if (token_tags[ident + 1] == .comma) {
1048 try renderToken(ais, tree, ident + 1, .Space); // ,
1049 try renderToken(ais, tree, ident + 2, .None); // index
1048 try renderToken(ais, tree, ident + 1, .space); // ,
1049 try renderToken(ais, tree, ident + 2, .none); // index
10501050 break :blk payload_token + 3;
10511051 } else {
10521052 break :blk ident + 1;
10531053 }
10541054 };
1055 try renderToken(ais, tree, pipe, .Newline); // |
1055 try renderToken(ais, tree, pipe, .newline); // |
10561056 } else {
10571057 ais.pushIndent();
1058 try renderToken(ais, tree, rparen, .Newline); // )
1058 try renderToken(ais, tree, rparen, .newline); // )
10591059 ais.popIndent();
10601060 }
10611061 if (while_node.ast.cont_expr != 0) {
10621062 const cont_rparen = tree.lastToken(while_node.ast.cont_expr) + 1;
10631063 const cont_lparen = tree.firstToken(while_node.ast.cont_expr) - 1;
1064 try renderToken(ais, tree, cont_lparen - 1, .Space); // :
1065 try renderToken(ais, tree, cont_lparen, .None); // lparen
1066 try renderExpression(ais, tree, while_node.ast.cont_expr, .None);
1067 try renderToken(ais, tree, cont_rparen, .Newline); // rparen
1064 try renderToken(ais, tree, cont_lparen - 1, .space); // :
1065 try renderToken(ais, tree, cont_lparen, .none); // lparen
1066 try renderExpression(ais, tree, while_node.ast.cont_expr, .none);
1067 try renderToken(ais, tree, cont_rparen, .newline); // rparen
10681068 }
10691069 if (while_node.ast.else_expr != 0) {
10701070 ais.pushIndent();
1071 try renderExpression(ais, tree, while_node.ast.then_expr, Space.Newline);
1071 try renderExpression(ais, tree, while_node.ast.then_expr, Space.newline);
10721072 ais.popIndent();
10731073 const else_is_block = nodeIsBlock(node_tags[while_node.ast.else_expr]);
10741074 if (else_is_block) {
1075 try renderToken(ais, tree, while_node.else_token, .Space); // else
1075 try renderToken(ais, tree, while_node.else_token, .space); // else
10761076 if (while_node.error_token) |error_token| {
1077 try renderToken(ais, tree, error_token - 1, .None); // |
1078 try renderToken(ais, tree, error_token, .None); // identifier
1079 try renderToken(ais, tree, error_token + 1, .Space); // |
1077 try renderToken(ais, tree, error_token - 1, .none); // |
1078 try renderToken(ais, tree, error_token, .none); // identifier
1079 try renderToken(ais, tree, error_token + 1, .space); // |
10801080 }
10811081 return renderExpression(ais, tree, while_node.ast.else_expr, space);
10821082 } else {
10831083 if (while_node.error_token) |error_token| {
1084 try renderToken(ais, tree, while_node.else_token, .Space); // else
1085 try renderToken(ais, tree, error_token - 1, .None); // |
1086 try renderToken(ais, tree, error_token, .None); // identifier
1087 try renderToken(ais, tree, error_token + 1, .Space); // |
1084 try renderToken(ais, tree, while_node.else_token, .space); // else
1085 try renderToken(ais, tree, error_token - 1, .none); // |
1086 try renderToken(ais, tree, error_token, .none); // identifier
1087 try renderToken(ais, tree, error_token + 1, .space); // |
10881088 } else {
1089 try renderToken(ais, tree, while_node.else_token, .Newline); // else
1089 try renderToken(ais, tree, while_node.else_token, .newline); // else
10901090 }
10911091 ais.pushIndent();
10921092 try renderExpression(ais, tree, while_node.ast.else_expr, space);
......@@ -1105,48 +1105,48 @@ fn renderWhile(ais: *Ais, tree: ast.Tree, while_node: ast.full.While, space: Spa
11051105
11061106 if (while_node.payload_token) |payload_token| {
11071107 assert(payload_token - 2 == rparen);
1108 try renderToken(ais, tree, payload_token - 2, .Space); // )
1109 try renderToken(ais, tree, payload_token - 1, .None); // |
1108 try renderToken(ais, tree, payload_token - 2, .space); // )
1109 try renderToken(ais, tree, payload_token - 1, .none); // |
11101110 const ident = blk: {
11111111 if (token_tags[payload_token] == .asterisk) {
1112 try renderToken(ais, tree, payload_token, .None); // *
1112 try renderToken(ais, tree, payload_token, .none); // *
11131113 break :blk payload_token + 1;
11141114 } else {
11151115 break :blk payload_token;
11161116 }
11171117 };
1118 try renderToken(ais, tree, ident, .None); // identifier
1118 try renderToken(ais, tree, ident, .none); // identifier
11191119 const pipe = blk: {
11201120 if (token_tags[ident + 1] == .comma) {
1121 try renderToken(ais, tree, ident + 1, .Space); // ,
1122 try renderToken(ais, tree, ident + 2, .None); // index
1121 try renderToken(ais, tree, ident + 1, .space); // ,
1122 try renderToken(ais, tree, ident + 2, .none); // index
11231123 break :blk payload_token + 3;
11241124 } else {
11251125 break :blk ident + 1;
11261126 }
11271127 };
1128 try renderToken(ais, tree, pipe, .Space); // |
1128 try renderToken(ais, tree, pipe, .space); // |
11291129 } else {
1130 try renderToken(ais, tree, rparen, .Space); // )
1130 try renderToken(ais, tree, rparen, .space); // )
11311131 }
11321132
11331133 if (while_node.ast.cont_expr != 0) {
11341134 const cont_rparen = tree.lastToken(while_node.ast.cont_expr) + 1;
11351135 const cont_lparen = tree.firstToken(while_node.ast.cont_expr) - 1;
1136 try renderToken(ais, tree, cont_lparen - 1, .Space); // :
1137 try renderToken(ais, tree, cont_lparen, .None); // lparen
1138 try renderExpression(ais, tree, while_node.ast.cont_expr, .None);
1139 try renderToken(ais, tree, cont_rparen, .Space); // rparen
1136 try renderToken(ais, tree, cont_lparen - 1, .space); // :
1137 try renderToken(ais, tree, cont_lparen, .none); // lparen
1138 try renderExpression(ais, tree, while_node.ast.cont_expr, .none);
1139 try renderToken(ais, tree, cont_rparen, .space); // rparen
11401140 }
11411141
11421142 if (while_node.ast.else_expr != 0) {
1143 try renderExpression(ais, tree, while_node.ast.then_expr, .Space);
1144 try renderToken(ais, tree, while_node.else_token, .Space); // else
1143 try renderExpression(ais, tree, while_node.ast.then_expr, .space);
1144 try renderToken(ais, tree, while_node.else_token, .space); // else
11451145
11461146 if (while_node.error_token) |error_token| {
1147 try renderToken(ais, tree, error_token - 1, .None); // |
1148 try renderToken(ais, tree, error_token, .None); // identifier
1149 try renderToken(ais, tree, error_token + 1, .Space); // |
1147 try renderToken(ais, tree, error_token - 1, .none); // |
1148 try renderToken(ais, tree, error_token, .none); // identifier
1149 try renderToken(ais, tree, error_token + 1, .space); // |
11501150 }
11511151
11521152 return renderExpression(ais, tree, while_node.ast.else_expr, space);
......@@ -1163,21 +1163,21 @@ fn renderContainerField(
11631163) Error!void {
11641164 const main_tokens = tree.nodes.items(.main_token);
11651165 if (field.comptime_token) |t| {
1166 try renderToken(ais, tree, t, .Space); // comptime
1166 try renderToken(ais, tree, t, .space); // comptime
11671167 }
11681168 if (field.ast.type_expr == 0 and field.ast.value_expr == 0) {
11691169 return renderTokenComma(ais, tree, field.ast.name_token, space); // name
11701170 }
11711171 if (field.ast.type_expr != 0 and field.ast.value_expr == 0) {
1172 try renderToken(ais, tree, field.ast.name_token, .None); // name
1173 try renderToken(ais, tree, field.ast.name_token + 1, .Space); // :
1172 try renderToken(ais, tree, field.ast.name_token, .none); // name
1173 try renderToken(ais, tree, field.ast.name_token + 1, .space); // :
11741174
11751175 if (field.ast.align_expr != 0) {
1176 try renderExpression(ais, tree, field.ast.type_expr, .Space); // type
1176 try renderExpression(ais, tree, field.ast.type_expr, .space); // type
11771177 const align_token = tree.firstToken(field.ast.align_expr) - 2;
1178 try renderToken(ais, tree, align_token, .None); // align
1179 try renderToken(ais, tree, align_token + 1, .None); // (
1180 try renderExpression(ais, tree, field.ast.align_expr, .None); // alignment
1178 try renderToken(ais, tree, align_token, .none); // align
1179 try renderToken(ais, tree, align_token + 1, .none); // (
1180 try renderExpression(ais, tree, field.ast.align_expr, .none); // alignment
11811181 const rparen = tree.lastToken(field.ast.align_expr) + 1;
11821182 return renderTokenComma(ais, tree, rparen, space); // )
11831183 } else {
......@@ -1185,26 +1185,26 @@ fn renderContainerField(
11851185 }
11861186 }
11871187 if (field.ast.type_expr == 0 and field.ast.value_expr != 0) {
1188 try renderToken(ais, tree, field.ast.name_token, .Space); // name
1189 try renderToken(ais, tree, field.ast.name_token + 1, .Space); // =
1188 try renderToken(ais, tree, field.ast.name_token, .space); // name
1189 try renderToken(ais, tree, field.ast.name_token + 1, .space); // =
11901190 return renderExpressionComma(ais, tree, field.ast.value_expr, space); // value
11911191 }
11921192
1193 try renderToken(ais, tree, field.ast.name_token, .None); // name
1194 try renderToken(ais, tree, field.ast.name_token + 1, .Space); // :
1195 try renderExpression(ais, tree, field.ast.type_expr, .Space); // type
1193 try renderToken(ais, tree, field.ast.name_token, .none); // name
1194 try renderToken(ais, tree, field.ast.name_token + 1, .space); // :
1195 try renderExpression(ais, tree, field.ast.type_expr, .space); // type
11961196
11971197 if (field.ast.align_expr != 0) {
11981198 const lparen_token = tree.firstToken(field.ast.align_expr) - 1;
11991199 const align_kw = lparen_token - 1;
12001200 const rparen_token = tree.lastToken(field.ast.align_expr) + 1;
1201 try renderToken(ais, tree, align_kw, .None); // align
1202 try renderToken(ais, tree, lparen_token, .None); // (
1203 try renderExpression(ais, tree, field.ast.align_expr, .None); // alignment
1204 try renderToken(ais, tree, rparen_token, .Space); // )
1201 try renderToken(ais, tree, align_kw, .none); // align
1202 try renderToken(ais, tree, lparen_token, .none); // (
1203 try renderExpression(ais, tree, field.ast.align_expr, .none); // alignment
1204 try renderToken(ais, tree, rparen_token, .space); // )
12051205 }
12061206 const eq_token = tree.firstToken(field.ast.value_expr) - 1;
1207 try renderToken(ais, tree, eq_token, .Space); // =
1207 try renderToken(ais, tree, eq_token, .space); // =
12081208 return renderExpressionComma(ais, tree, field.ast.value_expr, space); // value
12091209}
12101210
......@@ -1217,10 +1217,10 @@ fn renderBuiltinCall(
12171217) Error!void {
12181218 const token_tags = tree.tokens.items(.tag);
12191219
1220 try renderToken(ais, tree, builtin_token, .None); // @name
1220 try renderToken(ais, tree, builtin_token, .none); // @name
12211221
12221222 if (params.len == 0) {
1223 try renderToken(ais, tree, builtin_token + 1, .None); // (
1223 try renderToken(ais, tree, builtin_token + 1, .none); // (
12241224 return renderToken(ais, tree, builtin_token + 2, space); // )
12251225 }
12261226
......@@ -1229,24 +1229,24 @@ fn renderBuiltinCall(
12291229
12301230 if (token_tags[after_last_param_token] != .comma) {
12311231 // Render all on one line, no trailing comma.
1232 try renderToken(ais, tree, builtin_token + 1, .None); // (
1232 try renderToken(ais, tree, builtin_token + 1, .none); // (
12331233
12341234 for (params) |param_node, i| {
1235 try renderExpression(ais, tree, param_node, .None);
1235 try renderExpression(ais, tree, param_node, .none);
12361236
12371237 if (i + 1 < params.len) {
12381238 const comma_token = tree.lastToken(param_node) + 1;
1239 try renderToken(ais, tree, comma_token, .Space); // ,
1239 try renderToken(ais, tree, comma_token, .space); // ,
12401240 }
12411241 }
12421242 return renderToken(ais, tree, after_last_param_token, space); // )
12431243 } else {
12441244 // Render one param per line.
12451245 ais.pushIndent();
1246 try renderToken(ais, tree, builtin_token + 1, Space.Newline); // (
1246 try renderToken(ais, tree, builtin_token + 1, Space.newline); // (
12471247
12481248 for (params) |param_node| {
1249 try renderExpression(ais, tree, param_node, .Comma);
1249 try renderExpression(ais, tree, param_node, .comma);
12501250 }
12511251 ais.popIndent();
12521252
......@@ -1260,11 +1260,11 @@ fn renderFnProto(ais: *Ais, tree: ast.Tree, fn_proto: ast.full.FnProto, space: S
12601260
12611261 const after_fn_token = fn_proto.ast.fn_token + 1;
12621262 const lparen = if (token_tags[after_fn_token] == .identifier) blk: {
1263 try renderToken(ais, tree, fn_proto.ast.fn_token, .Space); // fn
1264 try renderToken(ais, tree, after_fn_token, .None); // name
1263 try renderToken(ais, tree, fn_proto.ast.fn_token, .space); // fn
1264 try renderToken(ais, tree, after_fn_token, .none); // name
12651265 break :blk after_fn_token + 1;
12661266 } else blk: {
1267 try renderToken(ais, tree, fn_proto.ast.fn_token, .Space); // fn
1267 try renderToken(ais, tree, fn_proto.ast.fn_token, .space); // fn
12681268 break :blk fn_proto.ast.fn_token + 1;
12691269 };
12701270 assert(token_tags[lparen] == .l_paren);
......@@ -1307,7 +1307,7 @@ fn renderFnProto(ais: *Ais, tree: ast.Tree, fn_proto: ast.full.FnProto, space: S
13071307
13081308 if (token_tags[rparen - 1] != .comma) {
13091309 // Render all on one line, no trailing comma.
1310 try renderToken(ais, tree, lparen, .None); // (
1310 try renderToken(ais, tree, lparen, .none); // (
13111311
13121312 var param_i: usize = 0;
13131313 var last_param_token = lparen;
......@@ -1315,25 +1315,25 @@ fn renderFnProto(ais: *Ais, tree: ast.Tree, fn_proto: ast.full.FnProto, space: S
13151315 last_param_token += 1;
13161316 switch (token_tags[last_param_token]) {
13171317 .doc_comment => {
1318 try renderToken(ais, tree, last_param_token, .Newline);
1318 try renderToken(ais, tree, last_param_token, .newline);
13191319 continue;
13201320 },
13211321 .ellipsis3 => {
1322 try renderToken(ais, tree, last_param_token, .None); // ...
1322 try renderToken(ais, tree, last_param_token, .none); // ...
13231323 break;
13241324 },
13251325 .keyword_noalias, .keyword_comptime => {
1326 try renderToken(ais, tree, last_param_token, .Space);
1326 try renderToken(ais, tree, last_param_token, .space);
13271327 last_param_token += 1;
13281328 },
13291329 .identifier => {},
13301330 .keyword_anytype => {
1331 try renderToken(ais, tree, last_param_token, .None); // anytype
1331 try renderToken(ais, tree, last_param_token, .none); // anytype
13321332 continue;
13331333 },
13341334 .r_paren => break,
13351335 .comma => {
1336 try renderToken(ais, tree, last_param_token, .Space); // ,
1336 try renderToken(ais, tree, last_param_token, .space); // ,
13371337 last_param_token += 1;
13381338 },
13391339 else => {}, // Parameter type without a name.
......@@ -1341,24 +1341,24 @@ fn renderFnProto(ais: *Ais, tree: ast.Tree, fn_proto: ast.full.FnProto, space: S
13411341 if (token_tags[last_param_token] == .identifier and
13421342 token_tags[last_param_token + 1] == .colon)
13431343 {
1344 try renderToken(ais, tree, last_param_token, .None); // name
1344 try renderToken(ais, tree, last_param_token, .none); // name
13451345 last_param_token += 1;
1346 try renderToken(ais, tree, last_param_token, .Space); // :
1346 try renderToken(ais, tree, last_param_token, .space); // :
13471347 last_param_token += 1;
13481348 }
13491349 if (token_tags[last_param_token] == .keyword_anytype) {
1350 try renderToken(ais, tree, last_param_token, .None); // anytype
1350 try renderToken(ais, tree, last_param_token, .none); // anytype
13511351 continue;
13521352 }
13531353 const param = fn_proto.ast.params[param_i];
13541354 param_i += 1;
1355 try renderExpression(ais, tree, param, .None);
1355 try renderExpression(ais, tree, param, .none);
13561356 last_param_token = tree.lastToken(param);
13571357 }
13581358 } else {
13591359 // One param per line.
13601360 ais.pushIndent();
1361 try renderToken(ais, tree, lparen, .Newline); // (
1361 try renderToken(ais, tree, lparen, .newline); // (
13621362
13631363 var param_i: usize = 0;
13641364 var last_param_token = lparen;
......@@ -1366,77 +1366,77 @@ fn renderFnProto(ais: *Ais, tree: ast.Tree, fn_proto: ast.full.FnProto, space: S
13661366 last_param_token += 1;
13671367 switch (token_tags[last_param_token]) {
13681368 .doc_comment => {
1369 try renderToken(ais, tree, last_param_token, .Newline);
1369 try renderToken(ais, tree, last_param_token, .newline);
13701370 continue;
13711371 },
13721372 .ellipsis3 => {
1373 try renderToken(ais, tree, last_param_token, .Comma); // ...
1373 try renderToken(ais, tree, last_param_token, .comma); // ...
13741374 break;
13751375 },
13761376 .keyword_noalias, .keyword_comptime => {
1377 try renderToken(ais, tree, last_param_token, .Space);
1377 try renderToken(ais, tree, last_param_token, .space);
13781378 last_param_token += 1;
13791379 },
13801380 .identifier => {},
13811381 .keyword_anytype => {
1382 try renderToken(ais, tree, last_param_token, .Comma); // anytype
1382 try renderToken(ais, tree, last_param_token, .comma); // anytype
13831383 continue;
13841384 },
13851385 .r_paren => break,
13861386 else => unreachable,
13871387 }
13881388 if (token_tags[last_param_token] == .identifier) {
1389 try renderToken(ais, tree, last_param_token, .None); // name
1389 try renderToken(ais, tree, last_param_token, .none); // name
13901390 last_param_token += 1;
1391 try renderToken(ais, tree, last_param_token, .Space); // :
1391 try renderToken(ais, tree, last_param_token, .space); // :
13921392 last_param_token += 1;
13931393 }
13941394 if (token_tags[last_param_token] == .keyword_anytype) {
1395 try renderToken(ais, tree, last_param_token, .Comma); // anytype
1395 try renderToken(ais, tree, last_param_token, .comma); // anytype
13961396 continue;
13971397 }
13981398 const param = fn_proto.ast.params[param_i];
13991399 param_i += 1;
1400 try renderExpression(ais, tree, param, .Comma);
1400 try renderExpression(ais, tree, param, .comma);
14011401 last_param_token = tree.lastToken(param) + 1;
14021402 }
14031403 ais.popIndent();
14041404 }
14051405
1406 try renderToken(ais, tree, rparen, .Space); // )
1406 try renderToken(ais, tree, rparen, .space); // )
14071407
14081408 if (fn_proto.ast.align_expr != 0) {
14091409 const align_lparen = tree.firstToken(fn_proto.ast.align_expr) - 1;
14101410 const align_rparen = tree.lastToken(fn_proto.ast.align_expr) + 1;
14111411
1412 try renderToken(ais, tree, align_lparen - 1, .None); // align
1413 try renderToken(ais, tree, align_lparen, .None); // (
1414 try renderExpression(ais, tree, fn_proto.ast.align_expr, .None);
1415 try renderToken(ais, tree, align_rparen, .Space); // )
1412 try renderToken(ais, tree, align_lparen - 1, .none); // align
1413 try renderToken(ais, tree, align_lparen, .none); // (
1414 try renderExpression(ais, tree, fn_proto.ast.align_expr, .none);
1415 try renderToken(ais, tree, align_rparen, .space); // )
14161416 }
14171417
14181418 if (fn_proto.ast.section_expr != 0) {
14191419 const section_lparen = tree.firstToken(fn_proto.ast.section_expr) - 1;
14201420 const section_rparen = tree.lastToken(fn_proto.ast.section_expr) + 1;
14211421
1422 try renderToken(ais, tree, section_lparen - 1, .None); // section
1423 try renderToken(ais, tree, section_lparen, .None); // (
1424 try renderExpression(ais, tree, fn_proto.ast.section_expr, .None);
1425 try renderToken(ais, tree, section_rparen, .Space); // )
1422 try renderToken(ais, tree, section_lparen - 1, .none); // section
1423 try renderToken(ais, tree, section_lparen, .none); // (
1424 try renderExpression(ais, tree, fn_proto.ast.section_expr, .none);
1425 try renderToken(ais, tree, section_rparen, .space); // )
14261426 }
14271427
14281428 if (fn_proto.ast.callconv_expr != 0) {
14291429 const callconv_lparen = tree.firstToken(fn_proto.ast.callconv_expr) - 1;
14301430 const callconv_rparen = tree.lastToken(fn_proto.ast.callconv_expr) + 1;
14311431
1432 try renderToken(ais, tree, callconv_lparen - 1, .None); // callconv
1433 try renderToken(ais, tree, callconv_lparen, .None); // (
1434 try renderExpression(ais, tree, fn_proto.ast.callconv_expr, .None);
1435 try renderToken(ais, tree, callconv_rparen, .Space); // )
1432 try renderToken(ais, tree, callconv_lparen - 1, .none); // callconv
1433 try renderToken(ais, tree, callconv_lparen, .none); // (
1434 try renderExpression(ais, tree, fn_proto.ast.callconv_expr, .none);
1435 try renderToken(ais, tree, callconv_rparen, .space); // )
14361436 }
14371437
14381438 if (token_tags[maybe_bang] == .bang) {
1439 try renderToken(ais, tree, maybe_bang, .None); // !
1439 try renderToken(ais, tree, maybe_bang, .none); // !
14401440 }
14411441 return renderExpression(ais, tree, fn_proto.ast.return_type, space);
14421442}
......@@ -1452,34 +1452,34 @@ fn renderSwitchCase(
14521452
14531453 // Render everything before the arrow
14541454 if (switch_case.ast.values.len == 0) {
1455 try renderToken(ais, tree, switch_case.ast.arrow_token - 1, .Space); // else keyword
1455 try renderToken(ais, tree, switch_case.ast.arrow_token - 1, .space); // else keyword
14561456 } else if (switch_case.ast.values.len == 1) {
14571457 // render on one line and drop the trailing comma if any
1458 try renderExpression(ais, tree, switch_case.ast.values[0], .Space);
1458 try renderExpression(ais, tree, switch_case.ast.values[0], .space);
14591459 } else if (trailing_comma) {
14601460 // Render each value on a new line
14611461 for (switch_case.ast.values) |value_expr| {
1462 try renderExpression(ais, tree, value_expr, .Comma);
1462 try renderExpression(ais, tree, value_expr, .comma);
14631463 }
14641464 } else {
14651465 // Render on one line
14661466 for (switch_case.ast.values) |value_expr| {
1467 try renderExpression(ais, tree, value_expr, .CommaSpace);
1467 try renderExpression(ais, tree, value_expr, .comma_space);
14681468 }
14691469 }
14701470
14711471 // Render the arrow and everything after it
1472 try renderToken(ais, tree, switch_case.ast.arrow_token, .Space);
1472 try renderToken(ais, tree, switch_case.ast.arrow_token, .space);
14731473
14741474 if (switch_case.payload_token) |payload_token| {
1475 try renderToken(ais, tree, payload_token - 1, .None); // pipe
1475 try renderToken(ais, tree, payload_token - 1, .none); // pipe
14761476 if (token_tags[payload_token] == .asterisk) {
1477 try renderToken(ais, tree, payload_token, .None); // asterisk
1478 try renderToken(ais, tree, payload_token + 1, .None); // identifier
1479 try renderToken(ais, tree, payload_token + 2, .Space); // pipe
1477 try renderToken(ais, tree, payload_token, .none); // asterisk
1478 try renderToken(ais, tree, payload_token + 1, .none); // identifier
1479 try renderToken(ais, tree, payload_token + 2, .space); // pipe
14801480 } else {
1481 try renderToken(ais, tree, payload_token, .None); // identifier
1482 try renderToken(ais, tree, payload_token + 1, .Space); // pipe
1481 try renderToken(ais, tree, payload_token, .none); // identifier
1482 try renderToken(ais, tree, payload_token + 1, .space); // pipe
14831483 }
14841484 }
14851485
......@@ -1501,26 +1501,26 @@ fn renderBlock(
15011501 if (token_tags[lbrace - 1] == .colon and
15021502 token_tags[lbrace - 2] == .identifier)
15031503 {
1504 try renderToken(ais, tree, lbrace - 2, .None);
1505 try renderToken(ais, tree, lbrace - 1, .Space);
1504 try renderToken(ais, tree, lbrace - 2, .none);
1505 try renderToken(ais, tree, lbrace - 1, .space);
15061506 }
15071507
15081508 if (statements.len == 0) {
15091509 ais.pushIndentNextLine();
1510 try renderToken(ais, tree, lbrace, .None);
1510 try renderToken(ais, tree, lbrace, .none);
15111511 ais.popIndent();
15121512 return renderToken(ais, tree, lbrace + 1, space); // rbrace
15131513 }
15141514
15151515 ais.pushIndentNextLine();
1516 try renderToken(ais, tree, lbrace, .Newline);
1516 try renderToken(ais, tree, lbrace, .newline);
15171517 for (statements) |stmt, i| {
15181518 switch (node_tags[stmt]) {
15191519 .global_var_decl => try renderVarDecl(ais, tree, tree.globalVarDecl(stmt)),
15201520 .local_var_decl => try renderVarDecl(ais, tree, tree.localVarDecl(stmt)),
15211521 .simple_var_decl => try renderVarDecl(ais, tree, tree.simpleVarDecl(stmt)),
15221522 .aligned_var_decl => try renderVarDecl(ais, tree, tree.alignedVarDecl(stmt)),
1523 else => try renderExpression(ais, tree, stmt, .Semicolon),
1523 else => try renderExpression(ais, tree, stmt, .semicolon),
15241524 }
15251525 }
15261526 ais.popIndent();
......@@ -1537,12 +1537,12 @@ fn renderStructInit(
15371537) Error!void {
15381538 const token_tags = tree.tokens.items(.tag);
15391539 if (struct_init.ast.type_expr == 0) {
1540 try renderToken(ais, tree, struct_init.ast.lbrace - 1, .None); // .
1540 try renderToken(ais, tree, struct_init.ast.lbrace - 1, .none); // .
15411541 } else {
1542 try renderExpression(ais, tree, struct_init.ast.type_expr, .None); // T
1542 try renderExpression(ais, tree, struct_init.ast.type_expr, .none); // T
15431543 }
15441544 if (struct_init.ast.fields.len == 0) {
1545 try renderToken(ais, tree, struct_init.ast.lbrace, .None); // lbrace
1545 try renderToken(ais, tree, struct_init.ast.lbrace, .none); // lbrace
15461546 return renderToken(ais, tree, struct_init.ast.lbrace + 1, space); // rbrace
15471547 }
15481548 const last_field = struct_init.ast.fields[struct_init.ast.fields.len - 1];
......@@ -1550,28 +1550,28 @@ fn renderStructInit(
15501550 if (token_tags[last_field_token + 1] == .comma) {
15511551 // Render one field init per line.
15521552 ais.pushIndent();
1553 try renderToken(ais, tree, struct_init.ast.lbrace, .Newline);
1553 try renderToken(ais, tree, struct_init.ast.lbrace, .newline);
15541554
15551555 for (struct_init.ast.fields) |field_init| {
15561556 const init_token = tree.firstToken(field_init);
1557 try renderToken(ais, tree, init_token - 3, .None); // .
1558 try renderToken(ais, tree, init_token - 2, .Space); // name
1559 try renderToken(ais, tree, init_token - 1, .Space); // =
1560 try renderExpression(ais, tree, field_init, .Comma);
1557 try renderToken(ais, tree, init_token - 3, .none); // .
1558 try renderToken(ais, tree, init_token - 2, .space); // name
1559 try renderToken(ais, tree, init_token - 1, .space); // =
1560 try renderExpression(ais, tree, field_init, .comma);
15611561 }
15621562
15631563 ais.popIndent();
15641564 return renderToken(ais, tree, last_field_token + 2, space); // rbrace
15651565 } else {
15661566 // Render all on one line, no trailing comma.
1567 try renderToken(ais, tree, struct_init.ast.lbrace, .Space);
1567 try renderToken(ais, tree, struct_init.ast.lbrace, .space);
15681568
15691569 for (struct_init.ast.fields) |field_init| {
15701570 const init_token = tree.firstToken(field_init);
1571 try renderToken(ais, tree, init_token - 3, .None); // .
1572 try renderToken(ais, tree, init_token - 2, .Space); // name
1573 try renderToken(ais, tree, init_token - 1, .Space); // =
1574 try renderExpression(ais, tree, field_init, .CommaSpace);
1571 try renderToken(ais, tree, init_token - 3, .none); // .
1572 try renderToken(ais, tree, init_token - 2, .space); // name
1573 try renderToken(ais, tree, init_token - 1, .space); // =
1574 try renderExpression(ais, tree, field_init, .comma_space);
15751575 }
15761576
15771577 return renderToken(ais, tree, last_field_token + 1, space); // rbrace
......@@ -1587,12 +1587,12 @@ fn renderArrayInit(
15871587) Error!void {
15881588 const token_tags = tree.tokens.items(.tag);
15891589 if (array_init.ast.type_expr == 0) {
1590 try renderToken(ais, tree, array_init.ast.lbrace - 1, .None); // .
1590 try renderToken(ais, tree, array_init.ast.lbrace - 1, .none); // .
15911591 } else {
1592 try renderExpression(ais, tree, array_init.ast.type_expr, .None); // T
1592 try renderExpression(ais, tree, array_init.ast.type_expr, .none); // T
15931593 }
15941594 if (array_init.ast.elements.len == 0) {
1595 try renderToken(ais, tree, array_init.ast.lbrace, .None); // lbrace
1595 try renderToken(ais, tree, array_init.ast.lbrace, .none); // lbrace
15961596 return renderToken(ais, tree, array_init.ast.lbrace + 1, space); // rbrace
15971597 }
15981598 const last_elem = array_init.ast.elements[array_init.ast.elements.len - 1];
......@@ -1600,10 +1600,10 @@ fn renderArrayInit(
16001600 if (token_tags[last_elem_token + 1] == .comma) {
16011601 // Render one element per line.
16021602 ais.pushIndent();
1603 try renderToken(ais, tree, array_init.ast.lbrace, .Newline);
1603 try renderToken(ais, tree, array_init.ast.lbrace, .newline);
16041604
16051605 for (array_init.ast.elements) |elem| {
1606 try renderExpression(ais, tree, elem, .Comma);
1606 try renderExpression(ais, tree, elem, .comma);
16071607 }
16081608
16091609 ais.popIndent();
......@@ -1612,12 +1612,12 @@ fn renderArrayInit(
16121612 // Render all on one line, no trailing comma.
16131613 if (array_init.ast.elements.len == 1) {
16141614 // If there is only one element, we don't use spaces
1615 try renderToken(ais, tree, array_init.ast.lbrace, .None);
1616 try renderExpression(ais, tree, array_init.ast.elements[0], .None);
1615 try renderToken(ais, tree, array_init.ast.lbrace, .none);
1616 try renderExpression(ais, tree, array_init.ast.elements[0], .none);
16171617 } else {
1618 try renderToken(ais, tree, array_init.ast.lbrace, .Space);
1618 try renderToken(ais, tree, array_init.ast.lbrace, .space);
16191619 for (array_init.ast.elements) |elem| {
1620 try renderExpression(ais, tree, elem, .CommaSpace);
1620 try renderExpression(ais, tree, elem, .comma_space);
16211621 }
16221622 }
16231623 return renderToken(ais, tree, last_elem_token + 1, space); // rbrace
......@@ -1634,39 +1634,39 @@ fn renderContainerDecl(
16341634 const node_tags = tree.nodes.items(.tag);
16351635
16361636 if (container_decl.layout_token) |layout_token| {
1637 try renderToken(ais, tree, layout_token, .Space);
1637 try renderToken(ais, tree, layout_token, .space);
16381638 }
16391639
16401640 var lbrace: ast.TokenIndex = undefined;
16411641 if (container_decl.ast.enum_token) |enum_token| {
1642 try renderToken(ais, tree, container_decl.ast.main_token, .None); // union
1643 try renderToken(ais, tree, enum_token - 1, .None); // lparen
1644 try renderToken(ais, tree, enum_token, .None); // enum
1642 try renderToken(ais, tree, container_decl.ast.main_token, .none); // union
1643 try renderToken(ais, tree, enum_token - 1, .none); // lparen
1644 try renderToken(ais, tree, enum_token, .none); // enum
16451645 if (container_decl.ast.arg != 0) {
1646 try renderToken(ais, tree, enum_token + 1, .None); // lparen
1647 try renderExpression(ais, tree, container_decl.ast.arg, .None);
1646 try renderToken(ais, tree, enum_token + 1, .none); // lparen
1647 try renderExpression(ais, tree, container_decl.ast.arg, .none);
16481648 const rparen = tree.lastToken(container_decl.ast.arg) + 1;
1649 try renderToken(ais, tree, rparen, .None); // rparen
1650 try renderToken(ais, tree, rparen + 1, .Space); // rparen
1649 try renderToken(ais, tree, rparen, .none); // rparen
1650 try renderToken(ais, tree, rparen + 1, .space); // rparen
16511651 lbrace = rparen + 2;
16521652 } else {
1653 try renderToken(ais, tree, enum_token + 1, .Space); // rparen
1653 try renderToken(ais, tree, enum_token + 1, .space); // rparen
16541654 lbrace = enum_token + 2;
16551655 }
16561656 } else if (container_decl.ast.arg != 0) {
1657 try renderToken(ais, tree, container_decl.ast.main_token, .None); // union
1658 try renderToken(ais, tree, container_decl.ast.main_token + 1, .None); // lparen
1659 try renderExpression(ais, tree, container_decl.ast.arg, .None);
1657 try renderToken(ais, tree, container_decl.ast.main_token, .none); // union
1658 try renderToken(ais, tree, container_decl.ast.main_token + 1, .none); // lparen
1659 try renderExpression(ais, tree, container_decl.ast.arg, .none);
16601660 const rparen = tree.lastToken(container_decl.ast.arg) + 1;
1661 try renderToken(ais, tree, rparen, .Space); // rparen
1661 try renderToken(ais, tree, rparen, .space); // rparen
16621662 lbrace = rparen + 1;
16631663 } else {
1664 try renderToken(ais, tree, container_decl.ast.main_token, .Space); // union
1664 try renderToken(ais, tree, container_decl.ast.main_token, .space); // union
16651665 lbrace = container_decl.ast.main_token + 1;
16661666 }
16671667
16681668 if (container_decl.ast.members.len == 0) {
1669 try renderToken(ais, tree, lbrace, Space.None); // lbrace
1669 try renderToken(ais, tree, lbrace, Space.none); // lbrace
16701670 return renderToken(ais, tree, lbrace + 1, space); // rbrace
16711671 }
16721672
......@@ -1690,18 +1690,18 @@ fn renderContainerDecl(
16901690 if (!node_tags[member].isContainerField()) break :one_line;
16911691 }
16921692 // All the declarations on the same line.
1693 try renderToken(ais, tree, lbrace, .Space); // lbrace
1693 try renderToken(ais, tree, lbrace, .space); // lbrace
16941694 for (container_decl.ast.members) |member| {
1695 try renderMember(ais, tree, member, .Space);
1695 try renderMember(ais, tree, member, .space);
16961696 }
16971697 return renderToken(ais, tree, rbrace, space); // rbrace
16981698 }
16991699
17001700 // One member per line.
17011701 ais.pushIndent();
1702 try renderToken(ais, tree, lbrace, .Newline); // lbrace
1702 try renderToken(ais, tree, lbrace, .newline); // lbrace
17031703 for (container_decl.ast.members) |member| {
1704 try renderMember(ais, tree, member, .Newline);
1704 try renderMember(ais, tree, member, .newline);
17051705 }
17061706 ais.popIndent();
17071707
......@@ -1716,26 +1716,26 @@ fn renderAsm(
17161716) Error!void {
17171717 const token_tags = tree.tokens.items(.tag);
17181718
1719 try renderToken(ais, tree, asm_node.ast.asm_token, .Space); // asm
1719 try renderToken(ais, tree, asm_node.ast.asm_token, .space); // asm
17201720
17211721 if (asm_node.volatile_token) |volatile_token| {
1722 try renderToken(ais, tree, volatile_token, .Space); // volatile
1723 try renderToken(ais, tree, volatile_token + 1, .None); // lparen
1722 try renderToken(ais, tree, volatile_token, .space); // volatile
1723 try renderToken(ais, tree, volatile_token + 1, .none); // lparen
17241724 } else {
1725 try renderToken(ais, tree, asm_node.ast.asm_token + 1, .None); // lparen
1725 try renderToken(ais, tree, asm_node.ast.asm_token + 1, .none); // lparen
17261726 }
17271727
17281728 if (asm_node.ast.items.len == 0) {
1729 try renderExpression(ais, tree, asm_node.ast.template, .None);
1729 try renderExpression(ais, tree, asm_node.ast.template, .none);
17301730 if (asm_node.first_clobber) |first_clobber| {
17311731 // asm ("foo" ::: "a", "b")
17321732 var tok_i = first_clobber;
17331733 while (true) : (tok_i += 1) {
1734 try renderToken(ais, tree, tok_i, .None);
1734 try renderToken(ais, tree, tok_i, .none);
17351735 tok_i += 1;
17361736 switch (token_tags[tok_i]) {
17371737 .r_paren => return renderToken(ais, tree, tok_i, space),
1738 .comma => try renderToken(ais, tree, tok_i, .Space),
1738 .comma => try renderToken(ais, tree, tok_i, .space),
17391739 else => unreachable,
17401740 }
17411741 }
......@@ -1746,32 +1746,32 @@ fn renderAsm(
17461746 }
17471747
17481748 ais.pushIndent();
1749 try renderExpression(ais, tree, asm_node.ast.template, .Newline);
1749 try renderExpression(ais, tree, asm_node.ast.template, .newline);
17501750 ais.setIndentDelta(asm_indent_delta);
17511751 const colon1 = tree.lastToken(asm_node.ast.template) + 1;
17521752
17531753 const colon2 = if (asm_node.outputs.len == 0) colon2: {
1754 try renderToken(ais, tree, colon1, .Newline); // :
1754 try renderToken(ais, tree, colon1, .newline); // :
17551755 break :colon2 colon1 + 1;
17561756 } else colon2: {
1757 try renderToken(ais, tree, colon1, .Space); // :
1757 try renderToken(ais, tree, colon1, .space); // :
17581758
17591759 ais.pushIndent();
17601760 for (asm_node.outputs) |asm_output, i| {
17611761 if (i + 1 < asm_node.outputs.len) {
17621762 const next_asm_output = asm_node.outputs[i + 1];
1763 try renderAsmOutput(ais, tree, asm_output, .None);
1763 try renderAsmOutput(ais, tree, asm_output, .none);
17641764
17651765 const comma = tree.firstToken(next_asm_output) - 1;
1766 try renderToken(ais, tree, comma, .Newline); // ,
1766 try renderToken(ais, tree, comma, .newline); // ,
17671767 } else if (asm_node.inputs.len == 0 and asm_node.first_clobber == null) {
1768 try renderAsmOutput(ais, tree, asm_output, .Newline);
1768 try renderAsmOutput(ais, tree, asm_output, .newline);
17691769 ais.popIndent();
17701770 ais.setIndentDelta(indent_delta);
17711771 ais.popIndent();
17721772 return renderToken(ais, tree, asm_node.ast.rparen, space); // rparen
17731773 } else {
1774 try renderAsmOutput(ais, tree, asm_output, .Newline);
1774 try renderAsmOutput(ais, tree, asm_output, .newline);
17751775 const comma_or_colon = tree.lastToken(asm_output) + 1;
17761776 ais.popIndent();
17771777 break :colon2 switch (token_tags[comma_or_colon]) {
......@@ -1783,26 +1783,26 @@ fn renderAsm(
17831783 };
17841784
17851785 const colon3 = if (asm_node.inputs.len == 0) colon3: {
1786 try renderToken(ais, tree, colon2, .Newline); // :
1786 try renderToken(ais, tree, colon2, .newline); // :
17871787 break :colon3 colon2 + 1;
17881788 } else colon3: {
1789 try renderToken(ais, tree, colon2, .Space); // :
1789 try renderToken(ais, tree, colon2, .space); // :
17901790 ais.pushIndent();
17911791 for (asm_node.inputs) |asm_input, i| {
17921792 if (i + 1 < asm_node.inputs.len) {
17931793 const next_asm_input = asm_node.inputs[i + 1];
1794 try renderAsmInput(ais, tree, asm_input, .None);
1794 try renderAsmInput(ais, tree, asm_input, .none);
17951795
17961796 const first_token = tree.firstToken(next_asm_input);
1797 try renderToken(ais, tree, first_token - 1, .Newline); // ,
1797 try renderToken(ais, tree, first_token - 1, .newline); // ,
17981798 } else if (asm_node.first_clobber == null) {
1799 try renderAsmInput(ais, tree, asm_input, .Newline);
1799 try renderAsmInput(ais, tree, asm_input, .newline);
18001800 ais.popIndent();
18011801 ais.setIndentDelta(indent_delta);
18021802 ais.popIndent();
18031803 return renderToken(ais, tree, asm_node.ast.rparen, space); // rparen
18041804 } else {
1805 try renderAsmInput(ais, tree, asm_input, .Newline);
1805 try renderAsmInput(ais, tree, asm_input, .newline);
18061806 const comma_or_colon = tree.lastToken(asm_input) + 1;
18071807 ais.popIndent();
18081808 break :colon3 switch (token_tags[comma_or_colon]) {
......@@ -1814,7 +1814,7 @@ fn renderAsm(
18141814 unreachable;
18151815 };
18161816
1817 try renderToken(ais, tree, colon3, .Space); // :
1817 try renderToken(ais, tree, colon3, .space); // :
18181818 const first_clobber = asm_node.first_clobber.?;
18191819 var tok_i = first_clobber;
18201820 while (true) {
......@@ -1822,12 +1822,12 @@ fn renderAsm(
18221822 .r_paren => {
18231823 ais.setIndentDelta(indent_delta);
18241824 ais.popIndent();
1825 try renderToken(ais, tree, tok_i, .Newline);
1825 try renderToken(ais, tree, tok_i, .newline);
18261826 return renderToken(ais, tree, tok_i + 1, space);
18271827 },
18281828 .comma => {
1829 try renderToken(ais, tree, tok_i, .None);
1830 try renderToken(ais, tree, tok_i + 1, .Space);
1829 try renderToken(ais, tree, tok_i, .none);
1830 try renderToken(ais, tree, tok_i + 1, .space);
18311831 tok_i += 2;
18321832 },
18331833 else => unreachable,
......@@ -1846,14 +1846,14 @@ fn renderCall(
18461846 const main_tokens = tree.nodes.items(.main_token);
18471847
18481848 if (call.async_token) |async_token| {
1849 try renderToken(ais, tree, async_token, .Space);
1849 try renderToken(ais, tree, async_token, .space);
18501850 }
1851 try renderExpression(ais, tree, call.ast.fn_expr, .None);
1851 try renderExpression(ais, tree, call.ast.fn_expr, .none);
18521852
18531853 const lparen = call.ast.lparen;
18541854 const params = call.ast.params;
18551855 if (params.len == 0) {
1856 try renderToken(ais, tree, lparen, .None);
1856 try renderToken(ais, tree, lparen, .none);
18571857 return renderToken(ais, tree, lparen + 1, space); // )
18581858 }
18591859
......@@ -1861,10 +1861,10 @@ fn renderCall(
18611861 const after_last_param_tok = tree.lastToken(last_param) + 1;
18621862 if (token_tags[after_last_param_tok] == .comma) {
18631863 ais.pushIndent();
1864 try renderToken(ais, tree, lparen, Space.Newline); // (
1864 try renderToken(ais, tree, lparen, Space.newline); // (
18651865 for (params) |param_node, i| {
18661866 if (i + 1 < params.len) {
1867 try renderExpression(ais, tree, param_node, Space.None);
1867 try renderExpression(ais, tree, param_node, Space.none);
18681868
18691869 // Unindent the comma for multiline string literals
18701870 const is_multiline_string = node_tags[param_node] == .string_literal and
......@@ -1872,25 +1872,25 @@ fn renderCall(
18721872 if (is_multiline_string) ais.popIndent();
18731873
18741874 const comma = tree.lastToken(param_node) + 1;
1875 try renderToken(ais, tree, comma, Space.Newline); // ,
1875 try renderToken(ais, tree, comma, Space.newline); // ,
18761876
18771877 if (is_multiline_string) ais.pushIndent();
18781878 } else {
1879 try renderExpression(ais, tree, param_node, Space.Comma);
1879 try renderExpression(ais, tree, param_node, Space.comma);
18801880 }
18811881 }
18821882 ais.popIndent();
18831883 return renderToken(ais, tree, after_last_param_tok + 1, space); // )
18841884 }
18851885
1886 try renderToken(ais, tree, lparen, Space.None); // (
1886 try renderToken(ais, tree, lparen, Space.none); // (
18871887
18881888 for (params) |param_node, i| {
1889 try renderExpression(ais, tree, param_node, Space.None);
1889 try renderExpression(ais, tree, param_node, Space.none);
18901890
18911891 if (i + 1 < params.len) {
18921892 const comma = tree.lastToken(param_node) + 1;
1893 try renderToken(ais, tree, comma, Space.Space);
1893 try renderToken(ais, tree, comma, Space.space);
18941894 }
18951895 }
18961896 return renderToken(ais, tree, after_last_param_tok, space); // )
......@@ -1901,7 +1901,7 @@ fn renderExpressionComma(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space:
19011901 const token_tags = tree.tokens.items(.tag);
19021902 const maybe_comma = tree.lastToken(node) + 1;
19031903 if (token_tags[maybe_comma] == .comma) {
1904 try renderExpression(ais, tree, node, .None);
1904 try renderExpression(ais, tree, node, .none);
19051905 return renderToken(ais, tree, maybe_comma, space);
19061906 } else {
19071907 return renderExpression(ais, tree, node, space);
......@@ -1912,7 +1912,7 @@ fn renderTokenComma(ais: *Ais, tree: ast.Tree, token: ast.TokenIndex, space: Spa
19121912 const token_tags = tree.tokens.items(.tag);
19131913 const maybe_comma = token + 1;
19141914 if (token_tags[maybe_comma] == .comma) {
1915 try renderToken(ais, tree, token, .None);
1915 try renderToken(ais, tree, token, .none);
19161916 return renderToken(ais, tree, maybe_comma, space);
19171917 } else {
19181918 return renderToken(ais, tree, token, space);
......@@ -1921,22 +1921,22 @@ fn renderTokenComma(ais: *Ais, tree: ast.Tree, token: ast.TokenIndex, space: Spa
19211921
19221922const Space = enum {
19231923 /// Output the token lexeme only.
1924 None,
1924 none,
19251925 /// Output the token lexeme followed by a single space.
1926 Space,
1926 space,
19271927 /// Output the token lexeme followed by a newline.
1928 Newline,
1928 newline,
19291929 /// Additionally consume the next token if it is a comma.
19301930 /// In either case, a newline will be inserted afterwards.
1931 Comma,
1931 comma,
19321932 /// Additionally consume the next token if it is a comma.
19331933 /// In either case, a space will be inserted afterwards.
1934 CommaSpace,
1934 comma_space,
19351935 /// Additionally consume the next token if it is a semicolon.
19361936 /// In either case, a newline will be inserted afterwards.
1937 Semicolon,
1937 semicolon,
19381938 /// Skips writing the possible line comment after the token.
1939 NoComment,
1939 no_comment,
19401940};
19411941
19421942fn renderToken(ais: *Ais, tree: ast.Tree, token_index: ast.TokenIndex, space: Space) Error!void {
......@@ -1958,39 +1958,39 @@ fn renderToken(ais: *Ais, tree: ast.Tree, token_index: ast.TokenIndex, space: Sp
19581958 try ais.writer().writeAll(lexeme);
19591959
19601960 switch (space) {
1961 .NoComment => {},
1962 .None => _ = try renderCommentsAndNewlines(ais, tree, token_start + lexeme.len, token_starts[token_index + 1]),
1963 .Comma => {
1961 .no_comment => {},
1962 .none => _ = try renderCommentsAndNewlines(ais, tree, token_start + lexeme.len, token_starts[token_index + 1]),
1963 .comma => {
19641964 const comment = try renderCommentsAndNewlines(ais, tree, token_start + lexeme.len, token_starts[token_index + 1]);
19651965 if (token_tags[token_index + 1] == .comma) {
1966 return renderToken(ais, tree, token_index + 1, .Newline);
1966 return renderToken(ais, tree, token_index + 1, .newline);
19671967 } else if (!comment) {
19681968 return ais.insertNewline();
19691969 }
19701970 },
1971 .CommaSpace => {
1971 .comma_space => {
19721972 const comment = try renderCommentsAndNewlines(ais, tree, token_start + lexeme.len, token_starts[token_index + 1]);
19731973 if (token_tags[token_index + 1] == .comma) {
1974 return renderToken(ais, tree, token_index + 1, .Space);
1974 return renderToken(ais, tree, token_index + 1, .space);
19751975 } else if (!comment) {
19761976 return ais.writer().writeByte(' ');
19771977 }
19781978 },
1979 .Semicolon => {
1979 .semicolon => {
19801980 const comment = try renderCommentsAndNewlines(ais, tree, token_start + lexeme.len, token_starts[token_index + 1]);
19811981 if (token_tags[token_index + 1] == .semicolon) {
1982 return renderToken(ais, tree, token_index + 1, .Newline);
1982 return renderToken(ais, tree, token_index + 1, .newline);
19831983 } else if (!comment) {
19841984 return ais.insertNewline();
19851985 }
19861986 },
1987 .Space => {
1987 .space => {
19881988 const comment = try renderCommentsAndNewlines(ais, tree, token_start + lexeme.len, token_starts[token_index + 1]);
19891989 if (!comment) {
19901990 return ais.writer().writeByte(' ');
19911991 }
19921992 },
1993 .Newline => {
1993 .newline => {
19941994 if (!try renderCommentsAndNewlines(ais, tree, token_start + lexeme.len, token_starts[token_index + 1])) {
19951995 try ais.insertNewline();
19961996 }
......@@ -2018,9 +2018,9 @@ fn renderDocComments(ais: *Ais, tree: ast.Tree, end_token: ast.TokenIndex) Error
20182018 switch (token_tags[tok]) {
20192019 .doc_comment => {
20202020 if (first_tok < end_token) {
2021 try renderToken(ais, tree, tok, .Newline);
2021 try renderToken(ais, tree, tok, .newline);
20222022 } else {
2023 try renderToken(ais, tree, tok, .NoComment);
2023 try renderToken(ais, tree, tok, .no_comment);
20242024 try ais.insertNewline();
20252025 }
20262026 },