@@ -95,41 +95,30 @@ describe "Javascript grammar", ->
95
95
expect (tokens[6 ]).toEqual value : ' /' , scopes : [' source.js' , ' string.regexp.js' , ' punctuation.definition.string.end.js' ]
96
96
expect (tokens[7 ]).toEqual value : ' ]' , scopes : [' source.js' , ' meta.brace.square.js' ]
97
97
98
- it " verifies that regular expressions have explicit count modifiers" , ->
99
- source = fs .readFileSync (path .resolve (__dirname , ' ..' , ' grammars' , ' javascript.cson' ), ' utf8' )
100
- expect (source .search / {,/ ).toEqual - 1
101
-
102
- source = fs .readFileSync (path .resolve (__dirname , ' ..' , ' grammars' , ' regular expressions (javascript).cson' ), ' utf8' )
103
- expect (source .search / {,/ ).toEqual - 1
104
-
105
- describe " numbers" , ->
106
- it " tokenizes hexadecimals" , ->
107
98
{tokens } = grammar .tokenizeLine (' 0x1D306' )
108
99
expect (tokens[0 ]).toEqual value : ' 0x1D306' , scopes : [' source.js' , ' constant.numeric.js' ]
109
100
110
101
{tokens } = grammar .tokenizeLine (' 0X1D306' )
111
102
expect (tokens[0 ]).toEqual value : ' 0X1D306' , scopes : [' source.js' , ' constant.numeric.js' ]
112
103
113
- it " tokenizes binary literals" , ->
114
104
{tokens } = grammar .tokenizeLine (' 0b011101110111010001100110' )
115
105
expect (tokens[0 ]).toEqual value : ' 0b011101110111010001100110' , scopes : [' source.js' , ' constant.numeric.js' ]
116
106
117
107
{tokens } = grammar .tokenizeLine (' 0B011101110111010001100110' )
118
108
expect (tokens[0 ]).toEqual value : ' 0B011101110111010001100110' , scopes : [' source.js' , ' constant.numeric.js' ]
119
109
120
- it " tokenizes octal literals" , ->
121
110
{tokens } = grammar .tokenizeLine (' 0o1411' )
122
111
expect (tokens[0 ]).toEqual value : ' 0o1411' , scopes : [' source.js' , ' constant.numeric.js' ]
123
112
124
113
{tokens } = grammar .tokenizeLine (' 0O1411' )
125
114
expect (tokens[0 ]).toEqual value : ' 0O1411' , scopes : [' source.js' , ' constant.numeric.js' ]
126
115
127
- it " tokenizes decimals " , ->
128
- { tokens } = grammar . tokenizeLine ( ' 5e-10 ' )
129
- expect (tokens[ 0 ]). toEqual value : ' 5e-10 ' , scopes : [ ' source.js ' , ' constant.numeric.js ' ]
116
+ it " verifies that regular expressions have explicit count modifiers " , ->
117
+ source = fs . readFileSync ( path . resolve ( __dirname , ' .. ' , ' grammars ' , ' javascript.cson ' ), ' utf8 ' )
118
+ expect (source . search / {, / ). toEqual - 1
130
119
131
- { tokens } = grammar . tokenizeLine ( ' -5E+5 ' )
132
- expect (tokens[ 0 ]). toEqual value : ' -5E+5 ' , scopes : [ ' source.js ' , ' constant.numeric.js ' ]
120
+ source = fs . readFileSync ( path . resolve ( __dirname , ' .. ' , ' grammars ' , ' regular expressions (javascript).cson ' ), ' utf8 ' )
121
+ expect (source . search / {, / ). toEqual - 1
133
122
134
123
describe " operators" , ->
135
124
it " tokenizes void correctly" , ->
@@ -223,32 +212,6 @@ describe "Javascript grammar", ->
223
212
expect (tokens[6 ]).toEqual value : ' 42' , scopes : [' source.js' , ' constant.numeric.js' ]
224
213
expect (tokens[7 ]).toEqual value : ' ;' , scopes : [' source.js' , ' punctuation.terminator.statement.js' ]
225
214
226
- lines = grammar .tokenizeLines """
227
- const a,
228
- b,
229
- c
230
- if(a)
231
- """
232
- expect (lines[0 ][0 ]).toEqual value : ' const' , scopes : [' source.js' , ' storage.modifier.js' ]
233
- expect (lines[0 ][1 ]).toEqual value : ' ' , scopes : [' source.js' ]
234
- expect (lines[0 ][2 ]).toEqual value : ' a' , scopes : [' source.js' , ' constant.other.js' ]
235
- expect (lines[0 ][3 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.delimiter.object.comma.js' ]
236
- expect (lines[1 ][0 ]).toEqual value : ' b' , scopes : [' source.js' , ' constant.other.js' ]
237
- expect (lines[1 ][1 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.delimiter.object.comma.js' ]
238
- expect (lines[2 ][0 ]).toEqual value : ' c' , scopes : [' source.js' , ' constant.other.js' ]
239
- expect (lines[3 ][0 ]).toEqual value : ' if' , scopes : [' source.js' , ' keyword.control.js' ]
240
- expect (lines[3 ][1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.brace.round.js' ]
241
- expect (lines[3 ][2 ]).toEqual value : ' a' , scopes : [' source.js' ]
242
- expect (lines[3 ][3 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.brace.round.js' ]
243
-
244
- {tokens } = grammar .tokenizeLine (' (const hi);' )
245
- expect (tokens[0 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.brace.round.js' ]
246
- expect (tokens[1 ]).toEqual value : ' const' , scopes : [' source.js' , ' storage.modifier.js' ]
247
- expect (tokens[2 ]).toEqual value : ' ' , scopes : [' source.js' ]
248
- expect (tokens[3 ]).toEqual value : ' hi' , scopes : [' source.js' , ' constant.other.js' ]
249
- expect (tokens[4 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.brace.round.js' ]
250
- expect (tokens[5 ]).toEqual value : ' ;' , scopes : [' source.js' , ' punctuation.terminator.statement.js' ]
251
-
252
215
{tokens } = grammar .tokenizeLine (' const {first:f,second,...rest} = obj;' )
253
216
expect (tokens[0 ]).toEqual value : ' const' , scopes : [' source.js' , ' storage.modifier.js' ]
254
217
expect (tokens[1 ]).toEqual value : ' ' , scopes : [' source.js' ]
@@ -279,25 +242,6 @@ describe "Javascript grammar", ->
279
242
expect (tokens[8 ]).toEqual value : ' /' , scopes : [' source.js' , ' string.regexp.js' , ' punctuation.definition.string.end.js' ]
280
243
expect (tokens[9 ]).toEqual value : ' ;' , scopes : [' source.js' , ' punctuation.terminator.statement.js' ]
281
244
282
- it " tokenizes variables declared with `const` in for-in and for-of loops" , ->
283
- {tokens } = grammar .tokenizeLine ' for (const elem of array) {'
284
- expect (tokens[0 ]).toEqual value : ' for' , scopes : [' source.js' , ' keyword.control.js' ]
285
- expect (tokens[1 ]).toEqual value : ' ' , scopes : [' source.js' ]
286
- expect (tokens[2 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.brace.round.js' ]
287
- expect (tokens[3 ]).toEqual value : ' const' , scopes : [' source.js' , ' storage.modifier.js' ]
288
- expect (tokens[4 ]).toEqual value : ' ' , scopes : [' source.js' ]
289
- expect (tokens[5 ]).toEqual value : ' elem' , scopes : [' source.js' , ' constant.other.js' ]
290
- expect (tokens[6 ]).toEqual value : ' ' , scopes : [' source.js' ]
291
- expect (tokens[7 ]).toEqual value : ' of' , scopes : [' source.js' , ' keyword.operator.js' ]
292
- expect (tokens[8 ]).toEqual value : ' array' , scopes : [' source.js' ]
293
- expect (tokens[9 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.brace.round.js' ]
294
-
295
- {tokens } = grammar .tokenizeLine ' for (const name in object) {'
296
- expect (tokens[5 ]).toEqual value : ' name' , scopes : [' source.js' , ' constant.other.js' ]
297
- expect (tokens[6 ]).toEqual value : ' ' , scopes : [' source.js' ]
298
- expect (tokens[7 ]).toEqual value : ' in' , scopes : [' source.js' , ' keyword.operator.js' ]
299
- expect (tokens[8 ]).toEqual value : ' object' , scopes : [' source.js' ]
300
-
301
245
it " tokenizes support constants" , ->
302
246
{tokens } = grammar .tokenizeLine (' awesome = cool.systemLanguage;' )
303
247
expect (tokens[0 ]).toEqual value : ' awesome ' , scopes : [' source.js' ]
@@ -336,16 +280,6 @@ describe "Javascript grammar", ->
336
280
expect (tokens[2 ]).toEqual value : ' extends' , scopes : [' source.js' , ' meta.class.js' , ' storage.modifier.js' ]
337
281
expect (tokens[4 ]).toEqual value : ' SomeClass' , scopes : [' source.js' , ' meta.class.js' , ' entity.name.type.js' ]
338
282
339
- it " tokenizes constructors" , ->
340
- {tokens } = grammar .tokenizeLine (' constructor(a, b)' )
341
- expect (tokens[0 ]).toEqual value : ' constructor' , scopes : [' source.js' , ' entity.name.constructor.js' ]
342
- expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' punctuation.definition.parameters.begin.js' ]
343
- expect (tokens[2 ]).toEqual value : ' a' , scopes : [' source.js' , ' variable.parameter.function.js' ]
344
- expect (tokens[3 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.object.delimiter.js' ]
345
- expect (tokens[4 ]).toEqual value : ' ' , scopes : [' source.js' ]
346
- expect (tokens[5 ]).toEqual value : ' b' , scopes : [' source.js' , ' variable.parameter.function.js' ]
347
- expect (tokens[6 ]).toEqual value : ' )' , scopes : [' source.js' , ' punctuation.definition.parameters.end.js' ]
348
-
349
283
describe " ES6 import" , ->
350
284
it " Tokenizes import ... as" , ->
351
285
{tokens } = grammar .tokenizeLine (' import \' react\' as React' )
@@ -431,34 +365,8 @@ describe "Javascript grammar", ->
431
365
expect (tokens[0 ]).toEqual value : ' f' , scopes : [' source.js' , ' meta.method.js' , ' entity.name.function.js' ]
432
366
expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.begin.js' ]
433
367
expect (tokens[2 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
434
- expect (tokens[3 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
435
- expect (tokens[5 ]).toEqual value : ' b' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
436
- expect (tokens[6 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
437
-
438
- {tokens } = grammar .tokenizeLine (' hi({host, root = "./", plugins = [a, "b", "c", d]}) {}' )
439
- expect (tokens[0 ]).toEqual value : ' hi' , scopes : [' source.js' , ' meta.method.js' , ' entity.name.function.js' ]
440
- expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.begin.js' ]
441
- expect (tokens[2 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.curly.js' ]
442
- expect (tokens[3 ]).toEqual value : ' host' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
443
- expect (tokens[4 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
444
- expect (tokens[6 ]).toEqual value : ' root' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
445
- expect (tokens[8 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.method.js' , ' keyword.operator.js' ]
446
- expect (tokens[10 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.begin.js' ]
447
- expect (tokens[11 ]).toEqual value : ' ./' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' ]
448
- expect (tokens[12 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.end.js' ]
449
- expect (tokens[13 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
450
- expect (tokens[15 ]).toEqual value : ' plugins' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
451
- expect (tokens[17 ]).toEqual value : ' =' , scopes : [' source.js' , ' meta.method.js' , ' keyword.operator.js' ]
452
- expect (tokens[19 ]).toEqual value : ' [' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.square.js' ]
453
- expect (tokens[20 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
454
- expect (tokens[21 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
455
- expect (tokens[23 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.begin.js' ]
456
- expect (tokens[26 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.method.js' , ' meta.object.delimiter.js' ]
457
- expect (tokens[28 ]).toEqual value : ' "' , scopes : [' source.js' , ' meta.method.js' , ' string.quoted.double.js' , ' punctuation.definition.string.begin.js' ]
458
- expect (tokens[33 ]).toEqual value : ' d' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
459
- expect (tokens[34 ]).toEqual value : ' ]' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.square.js' ]
460
- expect (tokens[35 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.method.js' , ' meta.brace.curly.js' ]
461
- expect (tokens[36 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
368
+ expect (tokens[4 ]).toEqual value : ' b' , scopes : [' source.js' , ' meta.method.js' , ' variable.parameter.function.js' ]
369
+ expect (tokens[5 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method.js' , ' punctuation.definition.parameters.end.js' ]
462
370
463
371
it " tokenizes functions" , ->
464
372
{tokens } = grammar .tokenizeLine (' var func = function nonAnonymous(' )
0 commit comments