@@ -406,13 +406,16 @@ describe "Javascript grammar", ->
406
406
407
407
describe " non-anonymous functions" , ->
408
408
it " tokenizes methods" , ->
409
- {tokens } = grammar .tokenizeLine (' Foo.method = function nonAnonymous(' )
409
+ {tokens } = grammar .tokenizeLine (' Foo.method = function nonAnonymous(){} ' )
410
410
expect (tokens[0 ]).toEqual value : ' Foo' , scopes : [' source.js' , ' meta.function.js' , ' support.class.js' ]
411
411
expect (tokens[2 ]).toEqual value : ' method' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
412
412
expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.function.js' , ' keyword.operator.js' ]
413
413
expect (tokens[6 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
414
414
expect (tokens[8 ]).toEqual value : ' nonAnonymous' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
415
415
expect (tokens[9 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.begin.js' ]
416
+ expect (tokens[10 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.end.js' ]
417
+ expect (tokens[11 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.function.body.begin.js' ]
418
+ expect (tokens[12 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.function.body.end.js' ]
416
419
417
420
it " tokenizes methods" , ->
418
421
{tokens } = grammar .tokenizeLine (' f(a, b) {}' )
@@ -422,8 +425,10 @@ describe "Javascript grammar", ->
422
425
expect (tokens[3 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
423
426
expect (tokens[5 ]).toEqual value : ' b' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
424
427
expect (tokens[6 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
428
+ expect (tokens[8 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.function.body.begin.js' ]
429
+ expect (tokens[9 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.function.body.end.js' ]
425
430
426
- {tokens } = grammar .tokenizeLine (' hi({host, root = "./", plugins = [a, "b", "c", d]}) {}' )
431
+ {tokens } = grammar .tokenizeLine (' hi({host, root = "./", plugins = [a, "b", "c", d]}){}' )
427
432
expect (tokens[0 ]).toEqual value : ' hi' , scopes : [' source.js' , ' meta.method.js' , ' entity.name.function.js' ]
428
433
expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.begin.js' ]
429
434
expect (tokens[2 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.curly.js' ]
@@ -447,41 +452,60 @@ describe "Javascript grammar", ->
447
452
expect (tokens[34 ]).toEqual value : ' ]' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.square.js' ]
448
453
expect (tokens[35 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.curly.js' ]
449
454
expect (tokens[36 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
455
+ expect (tokens[37 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.function.body.begin.js' ]
456
+ expect (tokens[38 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.function.body.end.js' ]
450
457
451
458
it " tokenizes functions" , ->
452
- {tokens } = grammar .tokenizeLine (' var func = function nonAnonymous(' )
459
+ {tokens } = grammar .tokenizeLine (' var func = function nonAnonymous(){} ' )
453
460
expect (tokens[0 ]).toEqual value : ' var' , scopes : [' source.js' , ' storage.modifier.js' ]
454
461
expect (tokens[2 ]).toEqual value : ' func' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
455
462
expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.function.js' , ' keyword.operator.js' ]
456
463
expect (tokens[6 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
457
464
expect (tokens[8 ]).toEqual value : ' nonAnonymous' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
458
465
expect (tokens[9 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.begin.js' ]
466
+ expect (tokens[10 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.end.js' ]
467
+ expect (tokens[11 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.function.body.begin.js' ]
468
+ expect (tokens[12 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.function.body.end.js' ]
459
469
460
470
it " tokenizes object functions" , ->
461
- {tokens } = grammar .tokenizeLine (' foo: function nonAnonymous(' )
471
+ {tokens } = grammar .tokenizeLine (' foo: function nonAnonymous(){} ' )
462
472
expect (tokens[0 ]).toEqual value : ' foo' , scopes : [' source.js' , ' meta.function.json.js' , ' entity.name.function.js' ]
463
473
expect (tokens[1 ]).toEqual value : ' :' , scopes : [' source.js' , ' meta.function.json.js' , ' keyword.operator.js' ]
464
474
expect (tokens[3 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.json.js' , ' storage.type.function.js' ]
465
475
expect (tokens[5 ]).toEqual value : ' nonAnonymous' , scopes : [' source.js' , ' meta.function.json.js' , ' entity.name.function.js' ]
466
476
expect (tokens[6 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.parameters.begin.js' ]
477
+ expect (tokens[7 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.parameters.end.js' ]
478
+ expect (tokens[8 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.function.body.begin.js' ]
479
+ expect (tokens[9 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.function.body.end.js' ]
467
480
468
481
it " tokenizes quoted object functions" , ->
469
- {tokens } = grammar .tokenizeLine (' "foo": function nonAnonymous(' )
482
+ {tokens } = grammar .tokenizeLine (' "foo": function nonAnonymous(){} ' )
470
483
expect (tokens[1 ]).toEqual value : ' foo' , scopes : [' source.js' , ' meta.function.json.js' , ' string.quoted.double.js' , ' entity.name.function.js' ]
471
484
expect (tokens[3 ]).toEqual value : ' :' , scopes : [' source.js' , ' meta.function.json.js' , ' keyword.operator.js' ]
472
485
expect (tokens[5 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.json.js' , ' storage.type.function.js' ]
473
486
expect (tokens[7 ]).toEqual value : ' nonAnonymous' , scopes : [' source.js' , ' meta.function.json.js' , ' entity.name.function.js' ]
474
487
expect (tokens[8 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.parameters.begin.js' ]
488
+ expect (tokens[9 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.parameters.end.js' ]
489
+ expect (tokens[10 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.function.body.begin.js' ]
490
+ expect (tokens[11 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.function.body.end.js' ]
475
491
476
492
it " tokenizes async functions" , ->
477
493
{tokens } = grammar .tokenizeLine (' async function f(){}' )
478
494
expect (tokens[0 ]).toEqual value : ' async' , scopes : [' source.js' , ' meta.function.js' , ' storage.modifier.js' ]
479
495
expect (tokens[2 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
480
496
expect (tokens[4 ]).toEqual value : ' f' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
497
+ expect (tokens[5 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.begin.js' ]
498
+ expect (tokens[6 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.parameters.end.js' ]
499
+ expect (tokens[7 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.function.body.begin.js' ]
500
+ expect (tokens[8 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.function.js' , ' punctuation.definition.function.body.end.js' ]
481
501
482
502
{tokens } = grammar .tokenizeLine (' async f(){}' )
483
503
expect (tokens[0 ]).toEqual value : ' async' , scopes : [' source.js' , ' storage.modifier.js' ]
484
504
expect (tokens[2 ]).toEqual value : ' f' , scopes : [' source.js' , ' meta.method.js' , ' entity.name.function.js' ]
505
+ expect (tokens[3 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.begin.js' ]
506
+ expect (tokens[4 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
507
+ expect (tokens[5 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.function.body.begin.js' ]
508
+ expect (tokens[6 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.function.body.end.js' ]
485
509
486
510
it " tokenizes arrow functions with params" , ->
487
511
{tokens } = grammar .tokenizeLine (' (param1,param2)=>{}' )
@@ -490,6 +514,8 @@ describe "Javascript grammar", ->
490
514
expect (tokens[3 ]).toEqual value : ' param2' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
491
515
expect (tokens[4 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.end.js' ]
492
516
expect (tokens[5 ]).toEqual value : ' =>' , scopes : [' source.js' , ' meta.function.arrow.js' , ' storage.type.arrow.js' ]
517
+ expect (tokens[6 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.function.body.begin.js' ]
518
+ expect (tokens[7 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.function.body.end.js' ]
493
519
494
520
it " tokenizes stored arrow functions with params" , ->
495
521
{tokens } = grammar .tokenizeLine (' var func = (param1,param2)=>{}' )
@@ -500,6 +526,8 @@ describe "Javascript grammar", ->
500
526
expect (tokens[9 ]).toEqual value : ' param2' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
501
527
expect (tokens[10 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.end.js' ]
502
528
expect (tokens[11 ]).toEqual value : ' =>' , scopes : [' source.js' , ' meta.function.arrow.js' , ' storage.type.arrow.js' ]
529
+ expect (tokens[12 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.function.body.begin.js' ]
530
+ expect (tokens[13 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.function.body.end.js' ]
503
531
504
532
describe " strings and functions" , ->
505
533
it " doesn't confuse them" , ->
@@ -522,7 +550,7 @@ describe "Javascript grammar", ->
522
550
expect (tokens[3 ]).toEqual value : ' ){' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' ]
523
551
expect (tokens[4 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.end.js' ]
524
552
expect (tokens[5 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
525
- expect (tokens[6 ]).toEqual value : ' ;' , scopes : [' source.js' , ' punctuation.terminator.statement .js' ]
553
+ expect (tokens[6 ]).toEqual value : ' ;' , scopes : [' source.js' , ' meta.method .js' ]
526
554
527
555
delimsByScope =
528
556
" string.quoted.double.js" : ' "'
@@ -608,6 +636,8 @@ describe "Javascript grammar", ->
608
636
expect (tokens[7 ]).toEqual value : ' Bar' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' ]
609
637
expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
610
638
expect (tokens[9 ]).toEqual value : ' bar' , scopes : [' source.js' , ' meta.function.json.js' , ' variable.parameter.function.js' ]
639
+ expect (tokens[10 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.parameters.end.js' ]
640
+ expect (tokens[11 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.function.json.js' , ' punctuation.definition.function.body.begin.js' ]
611
641
612
642
{tokens } = grammar .tokenizeLine (' function test(bar, // comment' )
613
643
expect (tokens[0 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
0 commit comments