@@ -146,7 +146,7 @@ describe "Javascript grammar", ->
146146
147147 {tokens } = grammar .tokenizeLine (' [1, /test/]' )
148148 expect (tokens[0 ]).toEqual value : ' [' , scopes : [' source.js' , ' meta.brace.square.js' ]
149- expect (tokens[1 ]).toEqual value : ' 1' , scopes : [' source.js' , ' constant.numeric.js' ]
149+ expect (tokens[1 ]).toEqual value : ' 1' , scopes : [' source.js' , ' constant.numeric.decimal. js' ]
150150 expect (tokens[2 ]).toEqual value : ' ,' , scopes : [' source.js' , ' meta.delimiter.object.comma.js' ]
151151 expect (tokens[3 ]).toEqual value : ' ' , scopes : [' source.js' , ' string.regexp.js' ]
152152 expect (tokens[4 ]).toEqual value : ' /' , scopes : [' source.js' , ' string.regexp.js' , ' punctuation.definition.string.begin.js' ]
@@ -179,34 +179,54 @@ describe "Javascript grammar", ->
179179 describe " numbers" , ->
180180 it " tokenizes hexadecimals" , ->
181181 {tokens } = grammar .tokenizeLine (' 0x1D306' )
182- expect (tokens[0 ]).toEqual value : ' 0x1D306' , scopes : [' source.js' , ' constant.numeric.js' ]
182+ expect (tokens[0 ]).toEqual value : ' 0x1D306' , scopes : [' source.js' , ' constant.numeric.hex. js' ]
183183
184184 {tokens } = grammar .tokenizeLine (' 0X1D306' )
185- expect (tokens[0 ]).toEqual value : ' 0X1D306' , scopes : [' source.js' , ' constant.numeric.js' ]
185+ expect (tokens[0 ]).toEqual value : ' 0X1D306' , scopes : [' source.js' , ' constant.numeric.hex. js' ]
186186
187187 it " tokenizes binary literals" , ->
188188 {tokens } = grammar .tokenizeLine (' 0b011101110111010001100110' )
189- expect (tokens[0 ]).toEqual value : ' 0b011101110111010001100110' , scopes : [' source.js' , ' constant.numeric.js' ]
189+ expect (tokens[0 ]).toEqual value : ' 0b011101110111010001100110' , scopes : [' source.js' , ' constant.numeric.binary. js' ]
190190
191191 {tokens } = grammar .tokenizeLine (' 0B011101110111010001100110' )
192- expect (tokens[0 ]).toEqual value : ' 0B011101110111010001100110' , scopes : [' source.js' , ' constant.numeric.js' ]
192+ expect (tokens[0 ]).toEqual value : ' 0B011101110111010001100110' , scopes : [' source.js' , ' constant.numeric.binary. js' ]
193193
194194 it " tokenizes octal literals" , ->
195195 {tokens } = grammar .tokenizeLine (' 0o1411' )
196- expect (tokens[0 ]).toEqual value : ' 0o1411' , scopes : [' source.js' , ' constant.numeric.js' ]
196+ expect (tokens[0 ]).toEqual value : ' 0o1411' , scopes : [' source.js' , ' constant.numeric.octal. js' ]
197197
198198 {tokens } = grammar .tokenizeLine (' 0O1411' )
199- expect (tokens[0 ]).toEqual value : ' 0O1411' , scopes : [' source.js' , ' constant.numeric.js' ]
199+ expect (tokens[0 ]).toEqual value : ' 0O1411' , scopes : [' source.js' , ' constant.numeric.octal.js' ]
200+
201+ {tokens } = grammar .tokenizeLine (' 0010' )
202+ expect (tokens[0 ]).toEqual value : ' 0010' , scopes : [' source.js' , ' constant.numeric.octal.js' ]
200203
201204 it " tokenizes decimals" , ->
202205 {tokens } = grammar .tokenizeLine (' 1234' )
203- expect (tokens[0 ]).toEqual value : ' 1234' , scopes : [' source.js' , ' constant.numeric.js' ]
206+ expect (tokens[0 ]).toEqual value : ' 1234' , scopes : [' source.js' , ' constant.numeric.decimal. js' ]
204207
205208 {tokens } = grammar .tokenizeLine (' 5e-10' )
206- expect (tokens[0 ]).toEqual value : ' 5e-10' , scopes : [' source.js' , ' constant.numeric.js' ]
209+ expect (tokens[0 ]).toEqual value : ' 5e-10' , scopes : [' source.js' , ' constant.numeric.decimal. js' ]
207210
208211 {tokens } = grammar .tokenizeLine (' 5E+5' )
209- expect (tokens[0 ]).toEqual value : ' 5E+5' , scopes : [' source.js' , ' constant.numeric.js' ]
212+ expect (tokens[0 ]).toEqual value : ' 5E+5' , scopes : [' source.js' , ' constant.numeric.decimal.js' ]
213+
214+ {tokens } = grammar .tokenizeLine (' 9.' )
215+ expect (tokens[0 ]).toEqual value : ' 9' , scopes : [' source.js' , ' constant.numeric.decimal.js' ]
216+ expect (tokens[1 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal-mark.period.js' ]
217+
218+ {tokens } = grammar .tokenizeLine (' .9' )
219+ expect (tokens[0 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal-mark.period.js' ]
220+ expect (tokens[1 ]).toEqual value : ' 9' , scopes : [' source.js' , ' constant.numeric.decimal.js' ]
221+
222+ {tokens } = grammar .tokenizeLine (' 9.9' )
223+ expect (tokens[0 ]).toEqual value : ' 9' , scopes : [' source.js' , ' constant.numeric.decimal.js' ]
224+ expect (tokens[1 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal-mark.period.js' ]
225+ expect (tokens[2 ]).toEqual value : ' 9' , scopes : [' source.js' , ' constant.numeric.decimal.js' ]
226+
227+ {tokens } = grammar .tokenizeLine (' .1e-23' )
228+ expect (tokens[0 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal-mark.period.js' ]
229+ expect (tokens[1 ]).toEqual value : ' 1e-23' , scopes : [' source.js' , ' constant.numeric.decimal.js' ]
210230
211231 it " does not tokenize numbers that are part of a variable" , ->
212232 {tokens } = grammar .tokenizeLine (' hi$1' )
@@ -300,9 +320,9 @@ describe "Javascript grammar", ->
300320 it " tokenizes the arithmetic operators when separated by newlines" , ->
301321 for operator in operators
302322 lines = grammar .tokenizeLines ' 1\n ' + operator + ' 2'
303- expect (lines[0 ][0 ]).toEqual value : ' 1' , scopes : [' source.js' , ' constant.numeric.js' ]
323+ expect (lines[0 ][0 ]).toEqual value : ' 1' , scopes : [' source.js' , ' constant.numeric.decimal. js' ]
304324 expect (lines[1 ][0 ]).toEqual value : operator, scopes : [' source.js' , ' keyword.operator.js' ]
305- expect (lines[1 ][2 ]).toEqual value : ' 2' , scopes : [' source.js' , ' constant.numeric.js' ]
325+ expect (lines[1 ][2 ]).toEqual value : ' 2' , scopes : [' source.js' , ' constant.numeric.decimal. js' ]
306326
307327 describe " assignment" , ->
308328 it " tokenizes '=' operator" , ->
@@ -338,7 +358,7 @@ describe "Javascript grammar", ->
338358 expect (tokens[3 ]).toEqual value : ' ' , scopes : [' source.js' ]
339359 expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' keyword.operator.assignment.js' ]
340360 expect (tokens[5 ]).toEqual value : ' ' , scopes : [' source.js' ]
341- expect (tokens[6 ]).toEqual value : ' 42' , scopes : [' source.js' , ' constant.numeric.js' ]
361+ expect (tokens[6 ]).toEqual value : ' 42' , scopes : [' source.js' , ' constant.numeric.decimal. js' ]
342362 expect (tokens[7 ]).toEqual value : ' ;' , scopes : [' source.js' , ' punctuation.terminator.statement.js' ]
343363
344364 {tokens } = grammar .tokenizeLine (' something = MY_COOL_VAR * 1;' )
@@ -349,7 +369,7 @@ describe "Javascript grammar", ->
349369 expect (tokens[4 ]).toEqual value : ' ' , scopes : [' source.js' ]
350370 expect (tokens[5 ]).toEqual value : ' *' , scopes : [' source.js' , ' keyword.operator.js' ]
351371 expect (tokens[6 ]).toEqual value : ' ' , scopes : [' source.js' ]
352- expect (tokens[7 ]).toEqual value : ' 1' , scopes : [' source.js' , ' constant.numeric.js' ]
372+ expect (tokens[7 ]).toEqual value : ' 1' , scopes : [' source.js' , ' constant.numeric.decimal. js' ]
353373 expect (tokens[8 ]).toEqual value : ' ;' , scopes : [' source.js' , ' punctuation.terminator.statement.js' ]
354374
355375 it " tokenizes variables declared using `const` as constants" , ->
@@ -360,7 +380,7 @@ describe "Javascript grammar", ->
360380 expect (tokens[3 ]).toEqual value : ' ' , scopes : [' source.js' ]
361381 expect (tokens[4 ]).toEqual value : ' =' , scopes : [' source.js' , ' keyword.operator.assignment.js' ]
362382 expect (tokens[5 ]).toEqual value : ' ' , scopes : [' source.js' ]
363- expect (tokens[6 ]).toEqual value : ' 42' , scopes : [' source.js' , ' constant.numeric.js' ]
383+ expect (tokens[6 ]).toEqual value : ' 42' , scopes : [' source.js' , ' constant.numeric.decimal. js' ]
364384 expect (tokens[7 ]).toEqual value : ' ;' , scopes : [' source.js' , ' punctuation.terminator.statement.js' ]
365385
366386 lines = grammar .tokenizeLines """
@@ -763,7 +783,7 @@ describe "Javascript grammar", ->
763783 {tokens } = grammar .tokenizeLine (' export default 123;' )
764784 expect (tokens[0 ]).toEqual value : ' export' , scopes : [' source.js' , ' meta.export.js' , ' keyword.control.js' ]
765785 expect (tokens[2 ]).toEqual value : ' default' , scopes : [' source.js' , ' meta.export.js' , ' variable.language.default.js' ]
766- expect (tokens[4 ]).toEqual value : ' 123' , scopes : [' source.js' , ' constant.numeric.js' ]
786+ expect (tokens[4 ]).toEqual value : ' 123' , scopes : [' source.js' , ' constant.numeric.decimal. js' ]
767787
768788 {tokens } = grammar .tokenizeLine (' export default name;' )
769789 expect (tokens[0 ]).toEqual value : ' export' , scopes : [' source.js' , ' meta.export.js' , ' keyword.control.js' ]
@@ -1070,14 +1090,14 @@ describe "Javascript grammar", ->
10701090 expect (tokens[10 ]).toEqual value : ' {' , scopes : [' source.js' , ' meta.function-call.js' , ' meta.brace.curly.js' ]
10711091 expect (tokens[11 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.function-call.js' ]
10721092 expect (tokens[12 ]).toEqual value : ' :' , scopes : [' source.js' , ' meta.function-call.js' , ' keyword.operator.js' ]
1073- expect (tokens[14 ]).toEqual value : ' 123' , scopes : [' source.js' , ' meta.function-call.js' , ' constant.numeric.js' ]
1093+ expect (tokens[14 ]).toEqual value : ' 123' , scopes : [' source.js' , ' meta.function-call.js' , ' constant.numeric.decimal. js' ]
10741094 expect (tokens[15 ]).toEqual value : ' }' , scopes : [' source.js' , ' meta.function-call.js' , ' meta.brace.curly.js' ]
10751095 expect (tokens[16 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.end.js' ]
10761096
10771097 {tokens } = grammar .tokenizeLine (' functionCall((123).toString())' )
10781098 expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.begin.js' ]
10791099 expect (tokens[2 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function-call.js' , ' meta.brace.round.js' ]
1080- expect (tokens[3 ]).toEqual value : ' 123' , scopes : [' source.js' , ' meta.function-call.js' , ' constant.numeric.js' ]
1100+ expect (tokens[3 ]).toEqual value : ' 123' , scopes : [' source.js' , ' meta.function-call.js' , ' constant.numeric.decimal. js' ]
10811101 expect (tokens[4 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' meta.brace.round.js' ]
10821102 expect (tokens[9 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.end.js' ]
10831103
@@ -1104,18 +1124,6 @@ describe "Javascript grammar", ->
11041124 expect (tokens[2 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.end.js' ]
11051125
11061126 it " tokenizes illegal arguments" , ->
1107- {tokens } = grammar .tokenizeLine (' a(1a)' )
1108- expect (tokens[0 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.function-call.js' , ' entity.name.function.js' ]
1109- expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.begin.js' ]
1110- expect (tokens[2 ]).toEqual value : ' 1a' , scopes : [' source.js' , ' meta.function-call.js' ]
1111- expect (tokens[3 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.end.js' ]
1112-
1113- {tokens } = grammar .tokenizeLine (' a(123a)' )
1114- expect (tokens[0 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.function-call.js' , ' entity.name.function.js' ]
1115- expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.begin.js' ]
1116- expect (tokens[2 ]).toEqual value : ' 123a' , scopes : [' source.js' , ' meta.function-call.js' ]
1117- expect (tokens[3 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.end.js' ]
1118-
11191127 {tokens } = grammar .tokenizeLine (' a(1.prop)' )
11201128 expect (tokens[0 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.function-call.js' , ' entity.name.function.js' ]
11211129 expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.begin.js' ]
@@ -1147,9 +1155,9 @@ describe "Javascript grammar", ->
11471155 expect (tokens[1 ]).toEqual value : ' .' , scopes : [' source.js' , ' meta.method-call.js' , ' meta.delimiter.method.period.js' ]
11481156 expect (tokens[2 ]).toEqual value : ' b' , scopes : [' source.js' , ' meta.method-call.js' , ' entity.name.function.js' ]
11491157 expect (tokens[3 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.method-call.js' , ' punctuation.definition.arguments.begin.js' ]
1150- expect (tokens[4 ]).toEqual value : ' 1' , scopes : [' source.js' , ' meta.method-call.js' , ' constant.numeric.js' ]
1158+ expect (tokens[4 ]).toEqual value : ' 1' , scopes : [' source.js' , ' meta.method-call.js' , ' constant.numeric.decimal. js' ]
11511159 expect (tokens[5 ]).toEqual value : ' +' , scopes : [' source.js' , ' meta.method-call.js' , ' keyword.operator.js' ]
1152- expect (tokens[6 ]).toEqual value : ' 1' , scopes : [' source.js' , ' meta.method-call.js' , ' constant.numeric.js' ]
1160+ expect (tokens[6 ]).toEqual value : ' 1' , scopes : [' source.js' , ' meta.method-call.js' , ' constant.numeric.decimal. js' ]
11531161 expect (tokens[7 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.method-call.js' , ' punctuation.definition.arguments.end.js' ]
11541162
11551163 {tokens } = grammar .tokenizeLine (' a.$abc$()' )
0 commit comments