@@ -213,19 +213,19 @@ describe "Javascript grammar", ->
213213
214214 {tokens } = grammar .tokenizeLine (' 9.' )
215215 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' ]
216+ expect (tokens[1 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal.period.js' ]
217217
218218 {tokens } = grammar .tokenizeLine (' .9' )
219- expect (tokens[0 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal-mark .period.js' ]
219+ expect (tokens[0 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal.period.js' ]
220220 expect (tokens[1 ]).toEqual value : ' 9' , scopes : [' source.js' , ' constant.numeric.decimal.js' ]
221221
222222 {tokens } = grammar .tokenizeLine (' 9.9' )
223223 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' ]
224+ expect (tokens[1 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal.period.js' ]
225225 expect (tokens[2 ]).toEqual value : ' 9' , scopes : [' source.js' , ' constant.numeric.decimal.js' ]
226226
227227 {tokens } = grammar .tokenizeLine (' .1e-23' )
228- expect (tokens[0 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal-mark .period.js' ]
228+ expect (tokens[0 ]).toEqual value : ' .' , scopes : [' source.js' , ' constant.numeric.decimal.js' , ' meta.delimiter.decimal.period.js' ]
229229 expect (tokens[1 ]).toEqual value : ' 1e-23' , scopes : [' source.js' , ' constant.numeric.decimal.js' ]
230230
231231 it " does not tokenize numbers that are part of a variable" , ->
@@ -1050,6 +1050,16 @@ describe "Javascript grammar", ->
10501050 {tokens } = grammar .tokenizeLine (' super' )
10511051 expect (tokens[0 ]).toEqual value : ' super' , scopes : [' source.js' , ' variable.language.js' ]
10521052
1053+ it " tokenizes illegal identifiers" , ->
1054+ {tokens } = grammar .tokenizeLine (' 0illegal' )
1055+ expect (tokens[0 ]).toEqual value : ' 0illegal' , scopes : [' source.js' , ' invalid.illegal.identifier.js' ]
1056+
1057+ {tokens } = grammar .tokenizeLine (' 123illegal' )
1058+ expect (tokens[0 ]).toEqual value : ' 123illegal' , scopes : [' source.js' , ' invalid.illegal.identifier.js' ]
1059+
1060+ {tokens } = grammar .tokenizeLine (' 123$illegal' )
1061+ expect (tokens[0 ]).toEqual value : ' 123$illegal' , scopes : [' source.js' , ' invalid.illegal.identifier.js' ]
1062+
10531063 describe " objects" , ->
10541064 it " tokenizes them" , ->
10551065 {tokens } = grammar .tokenizeLine (' obj.prop' )
@@ -1063,13 +1073,13 @@ describe "Javascript grammar", ->
10631073
10641074 it " tokenizes illegal objects" , ->
10651075 {tokens } = grammar .tokenizeLine (' 1.prop' )
1066- expect (tokens[0 ]).toEqual value : ' 1' , scopes : [' source.js' , ' invalid.illegal.js' ]
1076+ expect (tokens[0 ]).toEqual value : ' 1' , scopes : [' source.js' , ' invalid.illegal.identifier. js' ]
10671077
10681078 {tokens } = grammar .tokenizeLine (' 123.prop' )
1069- expect (tokens[0 ]).toEqual value : ' 123' , scopes : [' source.js' , ' invalid.illegal.js' ]
1079+ expect (tokens[0 ]).toEqual value : ' 123' , scopes : [' source.js' , ' invalid.illegal.identifier. js' ]
10701080
10711081 {tokens } = grammar .tokenizeLine (' 123a.prop' )
1072- expect (tokens[0 ]).toEqual value : ' 123a' , scopes : [' source.js' , ' invalid.illegal.js' ]
1082+ expect (tokens[0 ]).toEqual value : ' 123a' , scopes : [' source.js' , ' invalid.illegal.identifier. js' ]
10731083
10741084 describe " function calls" , ->
10751085 it " tokenizes function calls" , ->
@@ -1119,15 +1129,27 @@ describe "Javascript grammar", ->
11191129
11201130 it " tokenizes illegal function calls" , ->
11211131 {tokens } = grammar .tokenizeLine (' 0illegal()' )
1122- expect (tokens[0 ]).toEqual value : ' 0illegal' , scopes : [' source.js' , ' meta.function-call.js' , ' invalid.illegal.js' ]
1132+ expect (tokens[0 ]).toEqual value : ' 0illegal' , scopes : [' source.js' , ' meta.function-call.js' , ' invalid.illegal.identifier. js' ]
11231133 expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.begin.js' ]
11241134 expect (tokens[2 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.end.js' ]
11251135
11261136 it " tokenizes illegal arguments" , ->
1137+ {tokens } = grammar .tokenizeLine (' a(1a)' )
1138+ expect (tokens[0 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.function-call.js' , ' entity.name.function.js' ]
1139+ expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.begin.js' ]
1140+ expect (tokens[2 ]).toEqual value : ' 1a' , scopes : [' source.js' , ' meta.function-call.js' , ' invalid.illegal.identifier.js' ]
1141+ expect (tokens[3 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.end.js' ]
1142+
1143+ {tokens } = grammar .tokenizeLine (' a(123a)' )
1144+ expect (tokens[0 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.function-call.js' , ' entity.name.function.js' ]
1145+ expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.begin.js' ]
1146+ expect (tokens[2 ]).toEqual value : ' 123a' , scopes : [' source.js' , ' meta.function-call.js' , ' invalid.illegal.identifier.js' ]
1147+ expect (tokens[3 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.end.js' ]
1148+
11271149 {tokens } = grammar .tokenizeLine (' a(1.prop)' )
11281150 expect (tokens[0 ]).toEqual value : ' a' , scopes : [' source.js' , ' meta.function-call.js' , ' entity.name.function.js' ]
11291151 expect (tokens[1 ]).toEqual value : ' (' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.begin.js' ]
1130- expect (tokens[2 ]).toEqual value : ' 1' , scopes : [' source.js' , ' meta.function-call.js' , ' invalid.illegal.js' ]
1152+ expect (tokens[2 ]).toEqual value : ' 1' , scopes : [' source.js' , ' meta.function-call.js' , ' invalid.illegal.identifier. js' ]
11311153 expect (tokens[3 ]).toEqual value : ' .' , scopes : [' source.js' , ' meta.function-call.js' , ' meta.delimiter.property.period.js' ]
11321154 expect (tokens[4 ]).toEqual value : ' prop' , scopes : [' source.js' , ' meta.function-call.js' , ' variable.other.property.js' ]
11331155 expect (tokens[5 ]).toEqual value : ' )' , scopes : [' source.js' , ' meta.function-call.js' , ' punctuation.definition.arguments.end.js' ]
@@ -1224,6 +1246,11 @@ describe "Javascript grammar", ->
12241246 expect (tokens[3 ]).toEqual value : ' .' , scopes : [' source.js' , ' meta.delimiter.property.period.js' ]
12251247 expect (tokens[4 ]).toEqual value : ' b' , scopes : [' source.js' , ' variable.other.property.js' ]
12261248
1249+ {tokens } = grammar .tokenizeLine (' a.123illegal' )
1250+ expect (tokens[0 ]).toEqual value : ' a' , scopes : [' source.js' ]
1251+ expect (tokens[1 ]).toEqual value : ' .' , scopes : [' source.js' , ' meta.delimiter.property.period.js' ]
1252+ expect (tokens[2 ]).toEqual value : ' 123illegal' , scopes : [' source.js' , ' invalid.illegal.identifier.js' ]
1253+
12271254 it " tokenizes constant properties" , ->
12281255 {tokens } = grammar .tokenizeLine (' obj.MY_CONSTANT' )
12291256 expect (tokens[0 ]).toEqual value : ' obj' , scopes : [' source.js' , ' variable.other.object.js' ]
0 commit comments