@@ -36,7 +36,6 @@ describe "Javascript grammar", ->
36
36
{tokens } = grammar .tokenizeLine (' with' )
37
37
expect (tokens[0 ]).toEqual value : ' with' , scopes : [' source.js' , ' keyword.control.js' ]
38
38
39
-
40
39
describe " built-in globals" , ->
41
40
it " tokenizes them as support classes" , ->
42
41
{tokens } = grammar .tokenizeLine (' window' )
@@ -141,7 +140,6 @@ describe "Javascript grammar", ->
141
140
1
142
141
/ 2
143
142
"""
144
-
145
143
expect (lines[0 ][0 ]).toEqual value : ' 1' , scopes : [' source.js' , ' constant.numeric.js' ]
146
144
expect (lines[1 ][0 ]).toEqual value : ' / ' , scopes : [' source.js' ]
147
145
expect (lines[1 ][1 ]).toEqual value : ' 2' , scopes : [' source.js' , ' constant.numeric.js' ]
@@ -347,12 +345,12 @@ describe "Javascript grammar", ->
347
345
expect (tokens[6 ]).toEqual value : ' )' , scopes : [' source.js' , ' punctuation.definition.parameters.end.js' ]
348
346
349
347
describe " ES6 import" , ->
350
- it " Tokenizes import ... as" , ->
348
+ it " tokenizes import ... as" , ->
351
349
{tokens } = grammar .tokenizeLine (' import \' react\' as React' )
352
350
expect (tokens[0 ]).toEqual value : ' import' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
353
351
expect (tokens[6 ]).toEqual value : ' as' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
354
352
355
- it " Tokenizes import ... from" , ->
353
+ it " tokenizes import ... from" , ->
356
354
{tokens } = grammar .tokenizeLine (' import React from \' react\' ' )
357
355
expect (tokens[0 ]).toEqual value : ' import' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
358
356
expect (tokens[4 ]).toEqual value : ' from' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
@@ -361,18 +359,17 @@ describe "Javascript grammar", ->
361
359
expect (tokens[6 ]).toEqual value : ' from' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
362
360
363
361
describe " ES6 yield" , ->
364
- it " Tokenizes yield" , ->
362
+ it " tokenizes yield" , ->
365
363
{tokens } = grammar .tokenizeLine (' yield next' )
366
364
expect (tokens[0 ]).toEqual value : ' yield' , scopes : [' source.js' , ' meta.control.yield.js' , ' keyword.control.js' ]
367
365
368
- it " Tokenizes yield*" , ->
366
+ it " tokenizes yield*" , ->
369
367
{tokens } = grammar .tokenizeLine (' yield * next' )
370
368
expect (tokens[0 ]).toEqual value : ' yield' , scopes : [' source.js' , ' meta.control.yield.js' , ' keyword.control.js' ]
371
369
expect (tokens[2 ]).toEqual value : ' *' , scopes : [' source.js' , ' meta.control.yield.js' , ' storage.modifier.js' ]
372
370
373
371
it " doesn't confuse strings and functions" , ->
374
372
{tokens } = grammar .tokenizeLine (" 'a'.b(':c(d)')" )
375
-
376
373
expect (tokens[0 ]).toEqual value : " '" , scopes : [' source.js' , ' string.quoted.single.js' , ' punctuation.definition.string.begin.js' ]
377
374
expect (tokens[1 ]).toEqual value : " a" , scopes : [' source.js' , ' string.quoted.single.js' ]
378
375
expect (tokens[2 ]).toEqual value : " '" , scopes : [' source.js' , ' string.quoted.single.js' , ' punctuation.definition.string.end.js' ]
@@ -398,27 +395,9 @@ describe "Javascript grammar", ->
398
395
{tokens } = grammar .tokenizeLine (' default: ' )
399
396
expect (tokens[0 ]).toEqual value : ' default' , scopes : [' source.js' , ' keyword.control.js' ]
400
397
401
- it " tokenizes arrow functions with params" , ->
402
- {tokens } = grammar .tokenizeLine (' (param1,param2)=>{}' )
403
- expect (tokens[0 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.begin.js' ]
404
- expect (tokens[1 ]).toEqual value : ' param1' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
405
- expect (tokens[3 ]).toEqual value : ' param2' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
406
- expect (tokens[4 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.end.js' ]
407
- expect (tokens[5 ]).toEqual value : ' =>' , scopes : [' source.js' , ' meta.function.arrow.js' , ' storage.type.arrow.js' ]
408
-
409
- it " tokenizes comments in function params" , ->
410
- {tokens } = grammar .tokenizeLine (' foo: function (/**Bar*/bar){' )
411
-
412
- expect (tokens[5 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.parameters.begin.js' ]
413
- expect (tokens[6 ]).toEqual value : ' /**' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
414
- expect (tokens[7 ]).toEqual value : ' Bar' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' ]
415
- expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
416
- expect (tokens[9 ]).toEqual value : ' bar' , scopes : [' source.js' , ' meta.function.json.js' , ' variable.parameter.function.js' ]
417
-
418
398
describe " non-anonymous functions" , ->
419
399
it " tokenizes methods" , ->
420
400
{tokens } = grammar .tokenizeLine (' Foo.method = function nonAnonymous(' )
421
-
422
401
expect (tokens[0 ]).toEqual value : ' Foo' , scopes : [' source.js' , ' meta.function.js' , ' support.class.js' ]
423
402
expect (tokens[2 ]).toEqual value : ' method' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
424
403
expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.function.js' , ' keyword.operator.js' ]
@@ -462,7 +441,6 @@ describe "Javascript grammar", ->
462
441
463
442
it " tokenizes functions" , ->
464
443
{tokens } = grammar .tokenizeLine (' var func = function nonAnonymous(' )
465
-
466
444
expect (tokens[0 ]).toEqual value : ' var' , scopes : [' source.js' , ' storage.modifier.js' ]
467
445
expect (tokens[2 ]).toEqual value : ' func' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
468
446
expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.function.js' , ' keyword.operator.js' ]
@@ -472,7 +450,6 @@ describe "Javascript grammar", ->
472
450
473
451
it " tokenizes object functions" , ->
474
452
{tokens } = grammar .tokenizeLine (' foo: function nonAnonymous(' )
475
-
476
453
expect (tokens[0 ]).toEqual value : ' foo' , scopes : [' source.js' , ' meta.function.json.js' , ' entity.name.function.js' ]
477
454
expect (tokens[1 ]).toEqual value : ' :' , scopes : [' source.js' , ' meta.function.json.js' , ' keyword.operator.js' ]
478
455
expect (tokens[3 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.json.js' , ' storage.type.function.js' ]
@@ -481,7 +458,6 @@ describe "Javascript grammar", ->
481
458
482
459
it " tokenizes quoted object functions" , ->
483
460
{tokens } = grammar .tokenizeLine (' "foo": function nonAnonymous(' )
484
-
485
461
expect (tokens[1 ]).toEqual value : ' foo' , scopes : [' source.js' , ' meta.function.json.js' , ' string.quoted.double.js' , ' entity.name.function.js' ]
486
462
expect (tokens[3 ]).toEqual value : ' :' , scopes : [' source.js' , ' meta.function.json.js' , ' keyword.operator.js' ]
487
463
expect (tokens[5 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.json.js' , ' storage.type.function.js' ]
@@ -494,6 +470,14 @@ describe "Javascript grammar", ->
494
470
expect (tokens[2 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
495
471
expect (tokens[4 ]).toEqual value : ' f' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
496
472
473
+ it " tokenizes arrow functions with params" , ->
474
+ {tokens } = grammar .tokenizeLine (' (param1,param2)=>{}' )
475
+ expect (tokens[0 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.begin.js' ]
476
+ expect (tokens[1 ]).toEqual value : ' param1' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
477
+ expect (tokens[3 ]).toEqual value : ' param2' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
478
+ expect (tokens[4 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.end.js' ]
479
+ expect (tokens[5 ]).toEqual value : ' =>' , scopes : [' source.js' , ' meta.function.arrow.js' , ' storage.type.arrow.js' ]
480
+
497
481
describe " decorators and annotations" , ->
498
482
it " tokenizes decorators" , ->
499
483
{tokens } = grammar .tokenizeLine (' @thisIsADecorator(true)' )
@@ -506,53 +490,55 @@ describe "Javascript grammar", ->
506
490
{tokens } = grammar .tokenizeLine (' @thisIsAnAnnotation' )
507
491
expect (tokens[0 ]).toEqual value : ' @thisIsAnAnnotation' , scopes : [' source.js' , ' meta.function.annotation.js' , ' entity.name.function.annotation.js' ]
508
492
509
- it " tokenizes /* */ comments" , ->
510
- {tokens } = grammar .tokenizeLine (' /**/' )
511
-
512
- expect (tokens[0 ]).toEqual value : ' /*' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
513
- expect (tokens[1 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
514
-
515
- {tokens } = grammar .tokenizeLine (' /* foo */' )
516
-
517
- expect (tokens[0 ]).toEqual value : ' /*' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
518
- expect (tokens[1 ]).toEqual value : ' foo ' , scopes : [' source.js' , ' comment.block.js' ]
519
- expect (tokens[2 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
520
-
521
- it " tokenizes /** */ comments" , ->
522
- {tokens } = grammar .tokenizeLine (' /***/' )
523
-
524
- expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
525
- expect (tokens[1 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
526
-
527
- {tokens } = grammar .tokenizeLine (' /** foo */' )
528
-
529
- expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
530
- expect (tokens[1 ]).toEqual value : ' foo ' , scopes : [' source.js' , ' comment.block.documentation.js' ]
531
- expect (tokens[2 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
532
-
533
- {tokens } = grammar .tokenizeLine (' /** @mixins */' )
534
-
535
- expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
536
- expect (tokens[2 ]).toEqual value : ' @mixins' , scopes : [' source.js' , ' comment.block.documentation.js' , ' storage.type.class.jsdoc' ]
537
- expect (tokens[3 ]).toEqual value : ' ' , scopes : [' source.js' , ' comment.block.documentation.js' ]
538
- expect (tokens[4 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
539
-
540
- it " tokenizes comments inside function parameters correctly" , ->
541
- {tokens } = grammar .tokenizeLine (' function test(arg1 /*, arg2 */) {}' )
542
-
543
- expect (tokens[0 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
544
- expect (tokens[1 ]).toEqual value : ' ' , scopes : [' source.js' , ' meta.function.js' ]
545
- expect (tokens[2 ]).toEqual value : ' test' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
546
- expect (tokens[3 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.begin.js' ]
547
- expect (tokens[4 ]).toEqual value : ' arg1' , scopes : [' source.js' , ' meta.function.js' , ' variable.parameter.function.js' ]
548
- expect (tokens[5 ]).toEqual value : ' ' , scopes : [' source.js' , ' meta.function.js' ]
549
- expect (tokens[6 ]).toEqual value : ' /*' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
550
- expect (tokens[7 ]).toEqual value : ' , arg2 ' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' ]
551
- expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
552
- expect (tokens[9 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.end.js' ]
553
- expect (tokens[10 ]).toEqual value : ' ' , scopes : [' source.js' ]
554
- expect (tokens[11 ]).toEqual value : ' {' , scopes : [' source.js' , ' punctuation.section.scope.begin.js' ]
555
- expect (tokens[12 ]).toEqual value : ' }' , scopes : [' source.js' , ' punctuation.section.scope.end.js' ]
493
+ describe " comments" , ->
494
+ it " tokenizes /* */ comments" , ->
495
+ {tokens } = grammar .tokenizeLine (' /**/' )
496
+ expect (tokens[0 ]).toEqual value : ' /*' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
497
+ expect (tokens[1 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
498
+
499
+ {tokens } = grammar .tokenizeLine (' /* foo */' )
500
+ expect (tokens[0 ]).toEqual value : ' /*' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
501
+ expect (tokens[1 ]).toEqual value : ' foo ' , scopes : [' source.js' , ' comment.block.js' ]
502
+ expect (tokens[2 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
503
+
504
+ it " tokenizes /** */ comments" , ->
505
+ {tokens } = grammar .tokenizeLine (' /***/' )
506
+ expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
507
+ expect (tokens[1 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
508
+
509
+ {tokens } = grammar .tokenizeLine (' /** foo */' )
510
+ expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
511
+ expect (tokens[1 ]).toEqual value : ' foo ' , scopes : [' source.js' , ' comment.block.documentation.js' ]
512
+ expect (tokens[2 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
513
+
514
+ {tokens } = grammar .tokenizeLine (' /** @mixins */' )
515
+ expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
516
+ expect (tokens[2 ]).toEqual value : ' @mixins' , scopes : [' source.js' , ' comment.block.documentation.js' , ' storage.type.class.jsdoc' ]
517
+ expect (tokens[3 ]).toEqual value : ' ' , scopes : [' source.js' , ' comment.block.documentation.js' ]
518
+ expect (tokens[4 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
519
+
520
+ it " tokenizes comments inside function parameters correctly" , ->
521
+ {tokens } = grammar .tokenizeLine (' function test(arg1 /*, arg2 */) {}' )
522
+ expect (tokens[0 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
523
+ expect (tokens[1 ]).toEqual value : ' ' , scopes : [' source.js' , ' meta.function.js' ]
524
+ expect (tokens[2 ]).toEqual value : ' test' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
525
+ expect (tokens[3 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.begin.js' ]
526
+ expect (tokens[4 ]).toEqual value : ' arg1' , scopes : [' source.js' , ' meta.function.js' , ' variable.parameter.function.js' ]
527
+ expect (tokens[5 ]).toEqual value : ' ' , scopes : [' source.js' , ' meta.function.js' ]
528
+ expect (tokens[6 ]).toEqual value : ' /*' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
529
+ expect (tokens[7 ]).toEqual value : ' , arg2 ' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' ]
530
+ expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
531
+ expect (tokens[9 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.end.js' ]
532
+ expect (tokens[10 ]).toEqual value : ' ' , scopes : [' source.js' ]
533
+ expect (tokens[11 ]).toEqual value : ' {' , scopes : [' source.js' , ' punctuation.section.scope.begin.js' ]
534
+ expect (tokens[12 ]).toEqual value : ' }' , scopes : [' source.js' , ' punctuation.section.scope.end.js' ]
535
+
536
+ {tokens } = grammar .tokenizeLine (' foo: function (/**Bar*/bar){' )
537
+ expect (tokens[5 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.parameters.begin.js' ]
538
+ expect (tokens[6 ]).toEqual value : ' /**' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
539
+ expect (tokens[7 ]).toEqual value : ' Bar' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' ]
540
+ expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
541
+ expect (tokens[9 ]).toEqual value : ' bar' , scopes : [' source.js' , ' meta.function.json.js' , ' variable.parameter.function.js' ]
556
542
557
543
describe " indentation" , ->
558
544
editor = null
0 commit comments