@@ -325,6 +325,16 @@ describe "Javascript grammar", ->
325
325
expect (tokens[2 ]).toEqual value : ' extends' , scopes : [' source.js' , ' meta.class.js' , ' storage.modifier.js' ]
326
326
expect (tokens[4 ]).toEqual value : ' SomeClass' , scopes : [' source.js' , ' meta.class.js' , ' entity.name.type.js' ]
327
327
328
+ it " tokenizes constructors" , ->
329
+ {tokens } = grammar .tokenizeLine (' constructor(a, b)' )
330
+ expect (tokens[0 ]).toEqual value : ' constructor' , scopes : [' source.js' , ' entity.name.constructor.js' ]
331
+ expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' punctuation.definition.parameters.begin.js' ]
332
+ expect (tokens[2 ]).toEqual value : ' a' , scopes : [' source.js' , ' variable.parameter.function.js' ]
333
+ expect (tokens[3 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.object.delimiter.js' ]
334
+ expect (tokens[4 ]).toEqual value : ' ' , scopes : [' source.js' ]
335
+ expect (tokens[5 ]).toEqual value : ' b' , scopes : [' source.js' , ' variable.parameter.function.js' ]
336
+ expect (tokens[6 ]).toEqual value : ' )' , scopes : [' source.js' , ' punctuation.definition.parameters.end.js' ]
337
+
328
338
describe " ES6 import" , ->
329
339
it " Tokenizes import ... as" , ->
330
340
{tokens } = grammar .tokenizeLine (' import \' react\' as React' )
@@ -410,8 +420,34 @@ describe "Javascript grammar", ->
410
420
expect (tokens[0 ]).toEqual value : ' f' , scopes : [' source.js' , ' meta.method.js' , ' entity.name.function.js' ]
411
421
expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.begin.js' ]
412
422
expect (tokens[2 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
413
- expect (tokens[4 ]).toEqual value : ' b' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
414
- expect (tokens[5 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
423
+ expect (tokens[3 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
424
+ expect (tokens[5 ]).toEqual value : ' b' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
425
+ expect (tokens[6 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
426
+
427
+ {tokens } = grammar .tokenizeLine (' hi({host, root = "./", plugins = [a, "b", "c", d]}) {}' )
428
+ expect (tokens[0 ]).toEqual value : ' hi' , scopes : [' source.js' , ' meta.method.js' , ' entity.name.function.js' ]
429
+ expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.begin.js' ]
430
+ expect (tokens[2 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.curly.js' ]
431
+ expect (tokens[3 ]).toEqual value : ' host' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
432
+ expect (tokens[4 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
433
+ expect (tokens[6 ]).toEqual value : ' root' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
434
+ expect (tokens[8 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.method.js' , ' keyword.operator.js' ]
435
+ expect (tokens[10 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.begin.js' ]
436
+ expect (tokens[11 ]).toEqual value : ' ./' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' ]
437
+ expect (tokens[12 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.end.js' ]
438
+ expect (tokens[13 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
439
+ expect (tokens[15 ]).toEqual value : ' plugins' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
440
+ expect (tokens[17 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.method.js' , ' keyword.operator.js' ]
441
+ expect (tokens[19 ]).toEqual value : ' [' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.square.js' ]
442
+ expect (tokens[20 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
443
+ expect (tokens[21 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
444
+ expect (tokens[23 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.begin.js' ]
445
+ expect (tokens[26 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
446
+ expect (tokens[28 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.begin.js' ]
447
+ expect (tokens[33 ]).toEqual value : ' d' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
448
+ expect (tokens[34 ]).toEqual value : ' ]' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.square.js' ]
449
+ expect (tokens[35 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.curly.js' ]
450
+ expect (tokens[36 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
415
451
416
452
it " tokenizes functions" , ->
417
453
{tokens } = grammar .tokenizeLine (' var func = function nonAnonymous(' )
0 commit comments