@@ -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' )
@@ -130,7 +129,6 @@ describe "Javascript grammar", ->
130
129
1
131
130
/ 2
132
131
"""
133
-
134
132
expect (lines[0 ][0 ]).toEqual value : ' 1' , scopes : [' source.js' , ' constant.numeric.js' ]
135
133
expect (lines[1 ][0 ]).toEqual value : ' / ' , scopes : [' source.js' ]
136
134
expect (lines[1 ][1 ]).toEqual value : ' 2' , scopes : [' source.js' , ' constant.numeric.js' ]
@@ -326,12 +324,12 @@ describe "Javascript grammar", ->
326
324
expect (tokens[4 ]).toEqual value : ' SomeClass' , scopes : [' source.js' , ' meta.class.js' , ' entity.name.type.js' ]
327
325
328
326
describe " ES6 import" , ->
329
- it " Tokenizes import ... as" , ->
327
+ it " tokenizes import ... as" , ->
330
328
{tokens } = grammar .tokenizeLine (' import \' react\' as React' )
331
329
expect (tokens[0 ]).toEqual value : ' import' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
332
330
expect (tokens[6 ]).toEqual value : ' as' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
333
331
334
- it " Tokenizes import ... from" , ->
332
+ it " tokenizes import ... from" , ->
335
333
{tokens } = grammar .tokenizeLine (' import React from \' react\' ' )
336
334
expect (tokens[0 ]).toEqual value : ' import' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
337
335
expect (tokens[4 ]).toEqual value : ' from' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
@@ -340,18 +338,17 @@ describe "Javascript grammar", ->
340
338
expect (tokens[6 ]).toEqual value : ' from' , scopes : [' source.js' , ' meta.import.js' , ' keyword.control.js' ]
341
339
342
340
describe " ES6 yield" , ->
343
- it " Tokenizes yield" , ->
341
+ it " tokenizes yield" , ->
344
342
{tokens } = grammar .tokenizeLine (' yield next' )
345
343
expect (tokens[0 ]).toEqual value : ' yield' , scopes : [' source.js' , ' meta.control.yield.js' , ' keyword.control.js' ]
346
344
347
- it " Tokenizes yield*" , ->
345
+ it " tokenizes yield*" , ->
348
346
{tokens } = grammar .tokenizeLine (' yield * next' )
349
347
expect (tokens[0 ]).toEqual value : ' yield' , scopes : [' source.js' , ' meta.control.yield.js' , ' keyword.control.js' ]
350
348
expect (tokens[2 ]).toEqual value : ' *' , scopes : [' source.js' , ' meta.control.yield.js' , ' storage.modifier.js' ]
351
349
352
350
it " doesn't confuse strings and functions" , ->
353
351
{tokens } = grammar .tokenizeLine (" 'a'.b(':c(d)')" )
354
-
355
352
expect (tokens[0 ]).toEqual value : " '" , scopes : [' source.js' , ' string.quoted.single.js' , ' punctuation.definition.string.begin.js' ]
356
353
expect (tokens[1 ]).toEqual value : " a" , scopes : [' source.js' , ' string.quoted.single.js' ]
357
354
expect (tokens[2 ]).toEqual value : " '" , scopes : [' source.js' , ' string.quoted.single.js' , ' punctuation.definition.string.end.js' ]
@@ -377,27 +374,9 @@ describe "Javascript grammar", ->
377
374
{tokens } = grammar .tokenizeLine (' default: ' )
378
375
expect (tokens[0 ]).toEqual value : ' default' , scopes : [' source.js' , ' keyword.control.js' ]
379
376
380
- it " tokenizes arrow functions with params" , ->
381
- {tokens } = grammar .tokenizeLine (' (param1,param2)=>{}' )
382
- expect (tokens[0 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.begin.js' ]
383
- expect (tokens[1 ]).toEqual value : ' param1' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
384
- expect (tokens[3 ]).toEqual value : ' param2' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
385
- expect (tokens[4 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.end.js' ]
386
- expect (tokens[5 ]).toEqual value : ' =>' , scopes : [' source.js' , ' meta.function.arrow.js' , ' storage.type.arrow.js' ]
387
-
388
- it " tokenizes comments in function params" , ->
389
- {tokens } = grammar .tokenizeLine (' foo: function (/**Bar*/bar){' )
390
-
391
- expect (tokens[5 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.parameters.begin.js' ]
392
- expect (tokens[6 ]).toEqual value : ' /**' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
393
- expect (tokens[7 ]).toEqual value : ' Bar' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' ]
394
- expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
395
- expect (tokens[9 ]).toEqual value : ' bar' , scopes : [' source.js' , ' meta.function.json.js' , ' variable.parameter.function.js' ]
396
-
397
377
describe " non-anonymous functions" , ->
398
378
it " tokenizes methods" , ->
399
379
{tokens } = grammar .tokenizeLine (' Foo.method = function nonAnonymous(' )
400
-
401
380
expect (tokens[0 ]).toEqual value : ' Foo' , scopes : [' source.js' , ' meta.function.js' , ' support.class.js' ]
402
381
expect (tokens[2 ]).toEqual value : ' method' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
403
382
expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.function.js' , ' keyword.operator.js' ]
@@ -415,7 +394,6 @@ describe "Javascript grammar", ->
415
394
416
395
it " tokenizes functions" , ->
417
396
{tokens } = grammar .tokenizeLine (' var func = function nonAnonymous(' )
418
-
419
397
expect (tokens[0 ]).toEqual value : ' var' , scopes : [' source.js' , ' storage.modifier.js' ]
420
398
expect (tokens[2 ]).toEqual value : ' func' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
421
399
expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.function.js' , ' keyword.operator.js' ]
@@ -425,7 +403,6 @@ describe "Javascript grammar", ->
425
403
426
404
it " tokenizes object functions" , ->
427
405
{tokens } = grammar .tokenizeLine (' foo: function nonAnonymous(' )
428
-
429
406
expect (tokens[0 ]).toEqual value : ' foo' , scopes : [' source.js' , ' meta.function.json.js' , ' entity.name.function.js' ]
430
407
expect (tokens[1 ]).toEqual value : ' :' , scopes : [' source.js' , ' meta.function.json.js' , ' keyword.operator.js' ]
431
408
expect (tokens[3 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.json.js' , ' storage.type.function.js' ]
@@ -434,7 +411,6 @@ describe "Javascript grammar", ->
434
411
435
412
it " tokenizes quoted object functions" , ->
436
413
{tokens } = grammar .tokenizeLine (' "foo": function nonAnonymous(' )
437
-
438
414
expect (tokens[1 ]).toEqual value : ' foo' , scopes : [' source.js' , ' meta.function.json.js' , ' string.quoted.double.js' , ' entity.name.function.js' ]
439
415
expect (tokens[3 ]).toEqual value : ' :' , scopes : [' source.js' , ' meta.function.json.js' , ' keyword.operator.js' ]
440
416
expect (tokens[5 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.json.js' , ' storage.type.function.js' ]
@@ -447,53 +423,63 @@ describe "Javascript grammar", ->
447
423
expect (tokens[2 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
448
424
expect (tokens[4 ]).toEqual value : ' f' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
449
425
450
- it " tokenizes /* */ comments" , ->
451
- {tokens } = grammar .tokenizeLine (' /**/' )
452
-
453
- expect (tokens[0 ]).toEqual value : ' /*' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
454
- expect (tokens[1 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
455
-
456
- {tokens } = grammar .tokenizeLine (' /* foo */' )
457
-
458
- expect (tokens[0 ]).toEqual value : ' /*' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
459
- expect (tokens[1 ]).toEqual value : ' foo ' , scopes : [' source.js' , ' comment.block.js' ]
460
- expect (tokens[2 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
461
-
462
- it " tokenizes /** */ comments" , ->
463
- {tokens } = grammar .tokenizeLine (' /***/' )
464
-
465
- expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
466
- expect (tokens[1 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
467
-
468
- {tokens } = grammar .tokenizeLine (' /** foo */' )
469
-
470
- expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
471
- expect (tokens[1 ]).toEqual value : ' foo ' , scopes : [' source.js' , ' comment.block.documentation.js' ]
472
- expect (tokens[2 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
473
-
474
- {tokens } = grammar .tokenizeLine (' /** @mixins */' )
475
-
476
- expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
477
- expect (tokens[2 ]).toEqual value : ' @mixins' , scopes : [' source.js' , ' comment.block.documentation.js' , ' storage.type.class.jsdoc' ]
478
- expect (tokens[3 ]).toEqual value : ' ' , scopes : [' source.js' , ' comment.block.documentation.js' ]
479
- expect (tokens[4 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
480
-
481
- it " tokenizes comments inside function parameters correctly" , ->
482
- {tokens } = grammar .tokenizeLine (' function test(arg1 /*, arg2 */) {}' )
483
-
484
- expect (tokens[0 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
485
- expect (tokens[1 ]).toEqual value : ' ' , scopes : [' source.js' , ' meta.function.js' ]
486
- expect (tokens[2 ]).toEqual value : ' test' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
487
- expect (tokens[3 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.begin.js' ]
488
- expect (tokens[4 ]).toEqual value : ' arg1' , scopes : [' source.js' , ' meta.function.js' , ' variable.parameter.function.js' ]
489
- expect (tokens[5 ]).toEqual value : ' ' , scopes : [' source.js' , ' meta.function.js' ]
490
- expect (tokens[6 ]).toEqual value : ' /*' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
491
- expect (tokens[7 ]).toEqual value : ' , arg2 ' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' ]
492
- expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
493
- expect (tokens[9 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.end.js' ]
494
- expect (tokens[10 ]).toEqual value : ' ' , scopes : [' source.js' ]
495
- expect (tokens[11 ]).toEqual value : ' {' , scopes : [' source.js' , ' punctuation.section.scope.begin.js' ]
496
- expect (tokens[12 ]).toEqual value : ' }' , scopes : [' source.js' , ' punctuation.section.scope.end.js' ]
426
+ it " tokenizes arrow functions with params" , ->
427
+ {tokens } = grammar .tokenizeLine (' (param1,param2)=>{}' )
428
+ expect (tokens[0 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.begin.js' ]
429
+ expect (tokens[1 ]).toEqual value : ' param1' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
430
+ expect (tokens[3 ]).toEqual value : ' param2' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
431
+ expect (tokens[4 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.end.js' ]
432
+ expect (tokens[5 ]).toEqual value : ' =>' , scopes : [' source.js' , ' meta.function.arrow.js' , ' storage.type.arrow.js' ]
433
+
434
+ describe " comments" , ->
435
+ it " tokenizes /* */ comments" , ->
436
+ {tokens } = grammar .tokenizeLine (' /**/' )
437
+ expect (tokens[0 ]).toEqual value : ' /*' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
438
+ expect (tokens[1 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
439
+
440
+ {tokens } = grammar .tokenizeLine (' /* foo */' )
441
+ expect (tokens[0 ]).toEqual value : ' /*' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
442
+ expect (tokens[1 ]).toEqual value : ' foo ' , scopes : [' source.js' , ' comment.block.js' ]
443
+ expect (tokens[2 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
444
+
445
+ it " tokenizes /** */ comments" , ->
446
+ {tokens } = grammar .tokenizeLine (' /***/' )
447
+ expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
448
+ expect (tokens[1 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
449
+
450
+ {tokens } = grammar .tokenizeLine (' /** foo */' )
451
+ expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
452
+ expect (tokens[1 ]).toEqual value : ' foo ' , scopes : [' source.js' , ' comment.block.documentation.js' ]
453
+ expect (tokens[2 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
454
+
455
+ {tokens } = grammar .tokenizeLine (' /** @mixins */' )
456
+ expect (tokens[0 ]).toEqual value : ' /**' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
457
+ expect (tokens[2 ]).toEqual value : ' @mixins' , scopes : [' source.js' , ' comment.block.documentation.js' , ' storage.type.class.jsdoc' ]
458
+ expect (tokens[3 ]).toEqual value : ' ' , scopes : [' source.js' , ' comment.block.documentation.js' ]
459
+ expect (tokens[4 ]).toEqual value : ' */' , scopes : [' source.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
460
+
461
+ it " tokenizes comments inside function parameters correctly" , ->
462
+ {tokens } = grammar .tokenizeLine (' function test(arg1 /*, arg2 */) {}' )
463
+ expect (tokens[0 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
464
+ expect (tokens[1 ]).toEqual value : ' ' , scopes : [' source.js' , ' meta.function.js' ]
465
+ expect (tokens[2 ]).toEqual value : ' test' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
466
+ expect (tokens[3 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.begin.js' ]
467
+ expect (tokens[4 ]).toEqual value : ' arg1' , scopes : [' source.js' , ' meta.function.js' , ' variable.parameter.function.js' ]
468
+ expect (tokens[5 ]).toEqual value : ' ' , scopes : [' source.js' , ' meta.function.js' ]
469
+ expect (tokens[6 ]).toEqual value : ' /*' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
470
+ expect (tokens[7 ]).toEqual value : ' , arg2 ' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' ]
471
+ expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.js' , ' comment.block.js' , ' punctuation.definition.comment.js' ]
472
+ expect (tokens[9 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.end.js' ]
473
+ expect (tokens[10 ]).toEqual value : ' ' , scopes : [' source.js' ]
474
+ expect (tokens[11 ]).toEqual value : ' {' , scopes : [' source.js' , ' punctuation.section.scope.begin.js' ]
475
+ expect (tokens[12 ]).toEqual value : ' }' , scopes : [' source.js' , ' punctuation.section.scope.end.js' ]
476
+
477
+ {tokens } = grammar .tokenizeLine (' foo: function (/**Bar*/bar){' )
478
+ expect (tokens[5 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.parameters.begin.js' ]
479
+ expect (tokens[6 ]).toEqual value : ' /**' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
480
+ expect (tokens[7 ]).toEqual value : ' Bar' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' ]
481
+ expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
482
+ expect (tokens[9 ]).toEqual value : ' bar' , scopes : [' source.js' , ' meta.function.json.js' , ' variable.parameter.function.js' ]
497
483
498
484
describe " indentation" , ->
499
485
editor = null
0 commit comments