623
623
# ^ template .ng expression .ng
624
624
# ^^ template .ng punctuation .definition .block .ts
625
625
>
626
+ >< ! -- Nullish coalesce -- >
627
+ #^^^^^^^^^^^^^^^^^^^^^^^^^^ template .ng
628
+ > {{a ?? 'empty'}}
629
+ #^^ template .ng punctuation .definition .block .ts
630
+ # ^ template .ng expression .ng variable .other .readwrite .ts
631
+ # ^ template .ng expression .ng
632
+ # ^^ template .ng expression .ng keyword .operator .logical .ts
633
+ # ^ template .ng expression .ng
634
+ # ^ template .ng expression .ng string .quoted .single .ts punctuation .definition .string .begin .ts
635
+ # ^^^^^ template .ng expression .ng string .quoted .single .ts
636
+ # ^ template .ng expression .ng string .quoted .single .ts punctuation .definition .string .end .ts
637
+ # ^^ template .ng punctuation .definition .block .ts
638
+ >
626
639
>< ! -- Ternary expression -- >
627
640
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^ template .ng
628
641
> {{ condition ? true : false }}
653
666
# ^^^^^ template .ng expression .ng constant .language .boolean .false .ts
654
667
# ^^ template .ng expression .ng
655
668
# ^^ template .ng punctuation .definition .block .ts
656
- > {{ condition() ? call(1 + 2 + 3) : call () }}
669
+ > {{ condition() ? call(1 + 2 + 3) : call () }}
657
670
#^^ template .ng punctuation .definition .block .ts
658
671
# ^ template .ng expression .ng
659
672
# ^^^^^^^^^ template .ng expression .ng entity .name .function .ts
680
693
# ^^^^ template .ng expression .ng entity .name .function .ts
681
694
# ^ template .ng expression .ng meta .brace .round .ts
682
695
# ^ template .ng expression .ng meta .brace .round .ts
683
- # ^^ template .ng expression .ng
684
- # ^^ template .ng punctuation .definition .block .ts
685
- > {{ condition() ? call(1 + 2 + 3) : call (); }}
696
+ # ^ template .ng expression .ng
697
+ # ^^ template .ng punctuation .definition .block .ts
698
+ > {{ condition() ? call(1 + 2 + 3) : call (); }}
686
699
#^^ template .ng punctuation .definition .block .ts
687
700
# ^ template .ng expression .ng
688
701
# ^^^^^^^^^ template .ng expression .ng entity .name .function .ts
709
722
# ^^^^ template .ng expression .ng entity .name .function .ts
710
723
# ^ template .ng expression .ng meta .brace .round .ts
711
724
# ^ template .ng expression .ng meta .brace .round .ts
712
- # ^^^ template .ng expression .ng
713
- # ^^ template .ng punctuation .definition .block .ts
725
+ # ^^ template .ng expression .ng
726
+ # ^^ template .ng punctuation .definition .block .ts
714
727
> {{ condition()?.object ? call()!.test() : false }}
715
728
#^^ template .ng punctuation .definition .block .ts
716
729
# ^ template .ng expression .ng
837
850
# ^ template .ng expression .ng constant .numeric .decimal .ts
838
851
# ^ template .ng expression .ng
839
852
# ^^ template .ng punctuation .definition .block .ts
853
+ >< ! -- Don ' t match nullish coalesce -->
854
+ #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ template .ng
855
+ > {{ condition ?? (a ? 1 : 2 ) }}
856
+ #^^ template .ng punctuation .definition .block .ts
857
+ # ^ template .ng expression .ng
858
+ # ^^^^^^^^^ template .ng expression .ng variable .other .readwrite .ts
859
+ # ^ template .ng expression .ng
860
+ # ^^ template .ng expression .ng keyword .operator .logical .ts
861
+ # ^ template .ng expression .ng
862
+ # ^ template .ng expression .ng meta .brace .round .ts
863
+ # ^ template .ng expression .ng variable .other .readwrite .ts
864
+ # ^ template .ng expression .ng
865
+ # ^ template .ng expression .ng keyword .operator .ternary .ts
866
+ # ^ template .ng expression .ng
867
+ # ^ template .ng expression .ng constant .numeric .decimal .ts
868
+ # ^ template .ng expression .ng
869
+ # ^ template .ng expression .ng keyword .operator .ternary .ts
870
+ # ^ template .ng expression .ng
871
+ # ^ template .ng expression .ng constant .numeric .decimal .ts
872
+ # ^ template .ng expression .ng meta .brace .round .ts
873
+ # ^ template .ng expression .ng
874
+ # ^^ template .ng punctuation .definition .block .ts
840
875
>
841
876
>< ! -- Microsyntax -- >
842
877
#^^^^^^^^^^^^^^^^^^^^^ template .ng
1219
1254
>
1220
1255
><!-- Mixed -->
1221
1256
#^^^^^^^^^^^^^^^ template.ng
1222
- >{ { (let param of params ? .get ('value ')!.property | async).anotherProperty | translate: ['language1', 'language2']; index as i } }
1257
+ >{ { (let param of params ? .get ('value ')!.property | async).anotherProperty | translate: ['language1', 'language2']; index
1223
1258
#^^ template.ng punctuation.definition.block.ts
1224
1259
# ^ template.ng expression.ng
1225
1260
# ^ template.ng expression.ng meta.brace.round.ts
1265
1300
# ^ template.ng expression.ng meta.array.literal.ts meta.brace.square.ts
1266
1301
# ^^ template.ng expression.ng
1267
1302
# ^^^^^ template.ng expression.ng variable.other.readwrite.ts
1268
- # ^ template.ng expression.ng
1269
- # ^^ template.ng expression.ng storage.type.as.ts
1270
- # ^ template.ng expression.ng
1271
- # ^ template.ng expression.ng entity.name.type.ts
1272
- # ^ template.ng expression.ng
1273
- # ^^ template.ng punctuation.definition.block.ts
1303
+ >as i } }
1304
+ #^^ template.ng expression.ng storage.type.as.ts
1305
+ # ^ template.ng expression.ng
1306
+ # ^ template.ng expression.ng entity.name.type.ts
1307
+ # ^ template.ng expression.ng
1308
+ # ^^ template.ng punctuation.definition.block.ts
1274
1309
>{ { (let param of params ? .anotherParam !.param ().param | async) as p; let i = index; let first = first }}
1275
1310
#^^ template.ng punctuation.definition.block.ts
1276
1311
# ^ template.ng expression.ng
1318
1353
# ^^^^^ template.ng expression.ng variable.other.readwrite.ts
1319
1354
# ^ template.ng expression.ng
1320
1355
# ^^ template.ng punctuation.definition.block.ts
1321
- >{ { (let param of params ? .get ('value ')!.property | async).anotherProperty | translate: ['language1', 'language2']; let i = index; } }
1356
+ >{ { (let param of params ? .get ('value ')!.property | async).anotherProperty | translate: ['language1', 'language2']; let i
1322
1357
#^^ template.ng punctuation.definition.block.ts
1323
1358
# ^ template.ng expression.ng
1324
1359
# ^ template.ng expression.ng meta.brace.round.ts
1366
1401
# ^^^ template.ng expression.ng storage.type.ts
1367
1402
# ^ template.ng expression.ng
1368
1403
# ^ template.ng expression.ng variable.other.readwrite.ts
1369
- # ^ template.ng expression.ng
1370
- # ^ template.ng expression.ng keyword.operator.assignment.ts
1371
- # ^ template.ng expression.ng
1372
- # ^^^^^ template.ng expression.ng variable.other.readwrite.ts
1373
- # ^^ template.ng expression.ng
1374
- # ^^ template.ng punctuation.definition.block.ts
1404
+ >= index; } }
1405
+ #^ template.ng expression.ng keyword.operator.assignment.ts
1406
+ # ^ template.ng expression.ng
1407
+ # ^^^^^ template.ng expression.ng variable.other.readwrite.ts
1408
+ # ^^ template.ng expression.ng
1409
+ # ^^ template.ng punctuation.definition.block.ts
1375
1410
>
1376
1411
><!-- Regression -->
1377
1412
#^^^^^^^^^^^^^^^^^^^^ template.ng
1418
1453
# ^ template.ng meta.ng-binding.template.html expression.ng
1419
1454
# ^ template.ng meta.ng-binding.template.html expression.ng entity.name.type.ts
1420
1455
# ^ template.ng meta.ng-binding.template.html string.quoted.html punctuation.definition.string.end.html
1421
- # ^^^^^^^^ template.ng
1422
- >
1456
+ # ^^^^^^^^ template.ng
0 commit comments