@@ -1322,6 +1322,59 @@ describe "CoffeeScript grammar", ->
13221322 expect (tokens[8 ]).toEqual value : ' b' , scopes : [' source.coffee' , ' string.quoted.single.coffee' , ' constant.character.escape.backslash.coffee' ]
13231323 expect (tokens[9 ]).toEqual value : " '" , scopes : [' source.coffee' , ' string.quoted.single.coffee' , ' punctuation.definition.string.end.coffee' ]
13241324
1325+ describe " jsx" , ->
1326+ it " tokenises HTML tags" , ->
1327+ {tokens } = grammar .tokenizeLine (" <div></div>" )
1328+ expect (tokens[0 ]).toEqual value : ' <' , scopes : [' source.coffee' , ' meta.tag.coffee' , ' punctuation.definition.tag.coffee' ]
1329+ expect (tokens[1 ]).toEqual value : ' div' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' entity.name.tag.coffee' ]
1330+ expect (tokens[2 ]).toEqual value : ' >' , scopes : [ ' source.coffee' , ' meta.tag.coffee' ]
1331+ expect (tokens[3 ]).toEqual value : ' </' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' punctuation.definition.tag.coffee' ]
1332+ expect (tokens[4 ]).toEqual value : ' div' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' entity.name.tag.coffee' ]
1333+ expect (tokens[5 ]).toEqual value : ' >' , scopes : [ ' source.coffee' , ' meta.tag.coffee' ]
1334+
1335+ {tokens } = grammar .tokenizeLine (" <div/>" )
1336+ expect (tokens[0 ]).toEqual value : ' <' , scopes : [' source.coffee' , ' meta.tag.coffee' , ' punctuation.definition.tag.coffee' ]
1337+ expect (tokens[1 ]).toEqual value : ' div' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' entity.name.tag.coffee' ]
1338+ expect (tokens[2 ]).toEqual value : ' />' , scopes : [ ' source.coffee' , ' meta.tag.coffee' ]
1339+
1340+ it " tokenises HTML tags with attributes" , ->
1341+ {tokens } = grammar .tokenizeLine (" <div class='myclass' id=\" myid\" >" )
1342+ expect (tokens[0 ]).toEqual value : ' <' , scopes : [' source.coffee' , ' meta.tag.coffee' , ' punctuation.definition.tag.coffee' ]
1343+ expect (tokens[1 ]).toEqual value : ' div' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' entity.name.tag.coffee' ]
1344+ expect (tokens[2 ]).toEqual value : ' ' , scopes : [ ' source.coffee' , ' meta.tag.coffee' ]
1345+ expect (tokens[3 ]).toEqual value : ' class' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' entity.other.attribute-name.coffee' ]
1346+ expect (tokens[4 ]).toEqual value : ' =' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' keyword.operator.assignment.coffee' ]
1347+ expect (tokens[5 ]).toEqual value : ' \' ' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' string.quoted.single.coffee' , ' punctuation.definition.string.begin.coffee' ]
1348+ expect (tokens[6 ]).toEqual value : ' myclass' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' string.quoted.single.coffee' ]
1349+ expect (tokens[7 ]).toEqual value : ' \' ' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' string.quoted.single.coffee' , ' punctuation.definition.string.end.coffee' ]
1350+ expect (tokens[8 ]).toEqual value : ' ' , scopes : [ ' source.coffee' , ' meta.tag.coffee' ]
1351+ expect (tokens[9 ]).toEqual value : ' id' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' entity.other.attribute-name.coffee' ]
1352+ expect (tokens[10 ]).toEqual value : ' =' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' keyword.operator.assignment.coffee' ]
1353+ expect (tokens[11 ]).toEqual value : ' "' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' string.quoted.double.coffee' , ' punctuation.definition.string.begin.coffee' ]
1354+ expect (tokens[12 ]).toEqual value : ' myid' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' string.quoted.double.coffee' ]
1355+ expect (tokens[13 ]).toEqual value : ' "' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' string.quoted.double.coffee' , ' punctuation.definition.string.end.coffee' ]
1356+ expect (tokens[14 ]).toEqual value : ' >' , scopes : [ ' source.coffee' , ' meta.tag.coffee' ]
1357+
1358+ it " tokenises HTML tags with attributes that have expressions" , ->
1359+ {tokens } = grammar .tokenizeLine (" <div on-click={(e)->@handleClick(e)}>" )
1360+ expect (tokens[0 ]).toEqual value : ' <' , scopes : [' source.coffee' , ' meta.tag.coffee' , ' punctuation.definition.tag.coffee' ]
1361+ expect (tokens[1 ]).toEqual value : ' div' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' entity.name.tag.coffee' ]
1362+ expect (tokens[2 ]).toEqual value : ' ' , scopes : [ ' source.coffee' , ' meta.tag.coffee' ]
1363+ expect (tokens[3 ]).toEqual value : ' on-click' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' entity.other.attribute-name.coffee' ]
1364+ expect (tokens[4 ]).toEqual value : ' =' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' keyword.operator.assignment.coffee' ]
1365+ expect (tokens[5 ]).toEqual value : ' {' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.brace.curly.coffee' ]
1366+ expect (tokens[6 ]).toEqual value : ' (' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.function.inline.coffee' , ' meta.parameters.coffee' , ' punctuation.definition.parameters.begin.bracket.round.coffee' ]
1367+ expect (tokens[7 ]).toEqual value : ' e' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.function.inline.coffee' , ' meta.parameters.coffee' , ' variable.parameter.function.coffee' ]
1368+ expect (tokens[8 ]).toEqual value : ' )' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.function.inline.coffee' , ' meta.parameters.coffee' , ' punctuation.definition.parameters.end.bracket.round.coffee' ]
1369+ expect (tokens[9 ]).toEqual value : ' ->' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.function.inline.coffee' , ' storage.type.function.coffee' ]
1370+ expect (tokens[10 ]).toEqual value : ' @' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.function-call.coffee' , ' variable.other.readwrite.instance.coffee' ]
1371+ expect (tokens[11 ]).toEqual value : ' handleClick' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.function-call.coffee' , ' entity.name.function.coffee' ]
1372+ expect (tokens[12 ]).toEqual value : ' (' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.function-call.coffee' , ' meta.arguments.coffee' , ' punctuation.definition.arguments.begin.bracket.round.coffee' ]
1373+ expect (tokens[13 ]).toEqual value : ' e' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.function-call.coffee' , ' meta.arguments.coffee' ]
1374+ expect (tokens[14 ]).toEqual value : ' )' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.function-call.coffee' , ' meta.arguments.coffee' , ' punctuation.definition.arguments.end.bracket.round.coffee' ]
1375+ expect (tokens[15 ]).toEqual value : ' }' , scopes : [ ' source.coffee' , ' meta.tag.coffee' , ' meta.brace.curly.coffee' ]
1376+ expect (tokens[16 ]).toEqual value : ' >' , scopes : [ ' source.coffee' , ' meta.tag.coffee' ]
1377+
13251378 describe " firstLineMatch" , ->
13261379 it " recognises interpreter directives" , ->
13271380 valid = """
0 commit comments