File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -243,6 +243,18 @@ bool tree_sitter_rescript_external_scanner_scan(
243243 in_multiline_statement = true;
244244 }
245245 }
246+ } else if (lexer -> lookahead == 'e' ) {
247+ advance (lexer );
248+ if (lexer -> lookahead == 'l' ) {
249+ advance (lexer );
250+ if (lexer -> lookahead == 's' ) {
251+ advance (lexer );
252+ if (lexer -> lookahead == 'e' ) {
253+ // Ignore new lines before `else` keyword (else/else if clauses)
254+ in_multiline_statement = true;
255+ }
256+ }
257+ }
246258 }
247259
248260 if (in_multiline_statement ) {
Original file line number Diff line number Diff line change @@ -479,6 +479,66 @@ if predicateA {
479479 (expression_statement
480480 (value_identifier)))))))
481481
482+ ================================================================================
483+ If/else with else on new line
484+ ================================================================================
485+
486+ if predicateA {
487+ foo
488+ }
489+ else if predicateB {
490+ bar
491+ }
492+ else {
493+ baz
494+ }
495+
496+ if predicateA {
497+ foo
498+ } // comment before else if
499+ else if predicateB {
500+ bar
501+ } // comment before else
502+ else {
503+ baz
504+ }
505+
506+ --------------------------------------------------------------------------------
507+
508+ (source_file
509+ (expression_statement
510+ (if_expression
511+ (value_identifier)
512+ (block
513+ (expression_statement
514+ (value_identifier)))
515+ (else_if_clause
516+ (value_identifier)
517+ (block
518+ (expression_statement
519+ (value_identifier))))
520+ (else_clause
521+ (block
522+ (expression_statement
523+ (value_identifier))))))
524+ (expression_statement
525+ (if_expression
526+ (value_identifier)
527+ (block
528+ (expression_statement
529+ (value_identifier)))
530+ (comment)
531+ (else_if_clause
532+ (value_identifier)
533+ (block
534+ (expression_statement
535+ (value_identifier))))
536+ (comment)
537+ (else_clause
538+ (block
539+ (expression_statement
540+ (value_identifier)))))))
541+
482542================================================================================
483543Switch of literals
484544================================================================================
@@ -1639,7 +1699,7 @@ try for i in 0 to 10 {
16391699 call()
16401700} catch {
16411701| Not_found => false
1642- }
1702+ }
16431703
16441704--------------------------------------------------------------------------------
16451705
You can’t perform that action at this time.
0 commit comments