@@ -406,13 +406,16 @@ describe "Javascript grammar", ->
406406
407407 describe " non-anonymous functions" , ->
408408 it " tokenizes methods" , ->
409- {tokens } = grammar .tokenizeLine (' Foo.method = function nonAnonymous(' )
409+ {tokens } = grammar .tokenizeLine (' Foo.method = function nonAnonymous(){} ' )
410410 expect (tokens[0 ]).toEqual value : ' Foo' , scopes : [' source.js' , ' meta.function.js' , ' support.class.js' ]
411411 expect (tokens[2 ]).toEqual value : ' method' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
412412 expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.function.js' , ' keyword.operator.js' ]
413413 expect (tokens[6 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
414414 expect (tokens[8 ]).toEqual value : ' nonAnonymous' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
415415 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' ]
416419
417420 it " tokenizes methods" , ->
418421 {tokens } = grammar .tokenizeLine (' f(a, b) {}' )
@@ -422,8 +425,10 @@ describe "Javascript grammar", ->
422425 expect (tokens[3 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
423426 expect (tokens[5 ]).toEqual value : ' b' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
424427 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' ]
425430
426- {tokens } = grammar .tokenizeLine (' hi({host, root = "./", plugins = [a, "b", "c", d]}) {}' )
431+ {tokens } = grammar .tokenizeLine (' hi({host, root = "./", plugins = [a, "b", "c", d]}){}' )
427432 expect (tokens[0 ]).toEqual value : ' hi' , scopes : [' source.js' , ' meta.method.js' , ' entity.name.function.js' ]
428433 expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.begin.js' ]
429434 expect (tokens[2 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.curly.js' ]
@@ -447,41 +452,60 @@ describe "Javascript grammar", ->
447452 expect (tokens[34 ]).toEqual value : ' ]' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.square.js' ]
448453 expect (tokens[35 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.curly.js' ]
449454 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' ]
450457
451458 it " tokenizes functions" , ->
452- {tokens } = grammar .tokenizeLine (' var func = function nonAnonymous(' )
459+ {tokens } = grammar .tokenizeLine (' var func = function nonAnonymous(){} ' )
453460 expect (tokens[0 ]).toEqual value : ' var' , scopes : [' source.js' , ' storage.modifier.js' ]
454461 expect (tokens[2 ]).toEqual value : ' func' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
455462 expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.function.js' , ' keyword.operator.js' ]
456463 expect (tokens[6 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
457464 expect (tokens[8 ]).toEqual value : ' nonAnonymous' , scopes : [' source.js' , ' meta.function.js' , ' entity.name.function.js' ]
458465 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' ]
459469
460470 it " tokenizes object functions" , ->
461- {tokens } = grammar .tokenizeLine (' foo: function nonAnonymous(' )
471+ {tokens } = grammar .tokenizeLine (' foo: function nonAnonymous(){} ' )
462472 expect (tokens[0 ]).toEqual value : ' foo' , scopes : [' source.js' , ' meta.function.json.js' , ' entity.name.function.js' ]
463473 expect (tokens[1 ]).toEqual value : ' :' , scopes : [' source.js' , ' meta.function.json.js' , ' keyword.operator.js' ]
464474 expect (tokens[3 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.json.js' , ' storage.type.function.js' ]
465475 expect (tokens[5 ]).toEqual value : ' nonAnonymous' , scopes : [' source.js' , ' meta.function.json.js' , ' entity.name.function.js' ]
466476 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' ]
467480
468481 it " tokenizes quoted object functions" , ->
469- {tokens } = grammar .tokenizeLine (' "foo": function nonAnonymous(' )
482+ {tokens } = grammar .tokenizeLine (' "foo": function nonAnonymous(){} ' )
470483 expect (tokens[1 ]).toEqual value : ' foo' , scopes : [' source.js' , ' meta.function.json.js' , ' string.quoted.double.js' , ' entity.name.function.js' ]
471484 expect (tokens[3 ]).toEqual value : ' :' , scopes : [' source.js' , ' meta.function.json.js' , ' keyword.operator.js' ]
472485 expect (tokens[5 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.json.js' , ' storage.type.function.js' ]
473486 expect (tokens[7 ]).toEqual value : ' nonAnonymous' , scopes : [' source.js' , ' meta.function.json.js' , ' entity.name.function.js' ]
474487 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' ]
475491
476492 it " tokenizes async functions" , ->
477493 {tokens } = grammar .tokenizeLine (' async function f(){}' )
478494 expect (tokens[0 ]).toEqual value : ' async' , scopes : [' source.js' , ' meta.function.js' , ' storage.modifier.js' ]
479495 expect (tokens[2 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
480496 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' ]
481501
482502 {tokens } = grammar .tokenizeLine (' async f(){}' )
483503 expect (tokens[0 ]).toEqual value : ' async' , scopes : [' source.js' , ' storage.modifier.js' ]
484504 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' ]
485509
486510 it " tokenizes arrow functions with params" , ->
487511 {tokens } = grammar .tokenizeLine (' (param1,param2)=>{}' )
@@ -490,6 +514,8 @@ describe "Javascript grammar", ->
490514 expect (tokens[3 ]).toEqual value : ' param2' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
491515 expect (tokens[4 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.end.js' ]
492516 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' ]
493519
494520 it " tokenizes stored arrow functions with params" , ->
495521 {tokens } = grammar .tokenizeLine (' var func = (param1,param2)=>{}' )
@@ -500,6 +526,8 @@ describe "Javascript grammar", ->
500526 expect (tokens[9 ]).toEqual value : ' param2' , scopes : [' source.js' , ' meta.function.arrow.js' , ' variable.parameter.function.js' ]
501527 expect (tokens[10 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function.arrow.js' , ' punctuation.definition.parameters.end.js' ]
502528 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' ]
503531
504532 describe " strings and functions" , ->
505533 it " doesn't confuse them" , ->
@@ -522,7 +550,7 @@ describe "Javascript grammar", ->
522550 expect (tokens[3 ]).toEqual value : ' ){' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' ]
523551 expect (tokens[4 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.end.js' ]
524552 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' ]
526554
527555 delimsByScope =
528556 " string.quoted.double.js" : ' "'
@@ -608,6 +636,8 @@ describe "Javascript grammar", ->
608636 expect (tokens[7 ]).toEqual value : ' Bar' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' ]
609637 expect (tokens[8 ]).toEqual value : ' */' , scopes : [' source.js' , ' meta.function.json.js' , ' comment.block.documentation.js' , ' punctuation.definition.comment.js' ]
610638 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' ]
611641
612642 {tokens } = grammar .tokenizeLine (' function test(bar, // comment' )
613643 expect (tokens[0 ]).toEqual value : ' function' , scopes : [' source.js' , ' meta.function.js' , ' storage.type.function.js' ]
0 commit comments