@@ -55,6 +55,10 @@ describe "Javascript grammar", ->
5555 expect (lines[2 ][1 ]).toEqual value : delim, scopes : [' source.js' , scope, ' punctuation.definition.string.end.js' ]
5656
5757 describe " Unicode escape sequences" , ->
58+ bracketScopes = [
59+ ' punctuation.definition.unicode-escape.begin.bracket.curly.js' ,
60+ ' punctuation.definition.unicode-escape.end.bracket.curly.js'
61+ ]
5862 delimsByScope =
5963 " string.quoted.double.js" : ' "'
6064 " string.quoted.single.js" : " '"
@@ -79,28 +83,28 @@ describe "Javascript grammar", ->
7983 {tokens } = grammar .tokenizeLine (quote + ' \\ u{2000}' + quote)
8084 expect (tokens[0 ]).toEqual value : quote, scopes : [' source.js' , scope, ' punctuation.definition.string.begin.js' ]
8185 expect (tokens[1 ]).toEqual value : ' \\ u' , scopes : [' source.js' , scope, ' constant.character.escape.js' ]
82- expect (tokens[2 ]).toEqual value : ' {' , scopes : [' source.js' , scope, ' constant.character.escape.js' , ' punctuation.section.scope.begin.js ' ]
86+ expect (tokens[2 ]).toEqual value : ' {' , scopes : [' source.js' , scope, ' constant.character.escape.js' , bracketScopes[ 0 ] ]
8387 expect (tokens[3 ]).toEqual value : ' 2000' , scopes : [' source.js' , scope, ' constant.character.escape.js' ]
84- expect (tokens[4 ]).toEqual value : ' }' , scopes : [' source.js' , scope, ' constant.character.escape.js' , ' punctuation.section.scope.end.js ' ]
88+ expect (tokens[4 ]).toEqual value : ' }' , scopes : [' source.js' , scope, ' constant.character.escape.js' , bracketScopes[ 1 ] ]
8589 expect (tokens[5 ]).toEqual value : quote, scopes : [' source.js' , scope, ' punctuation.definition.string.end.js' ]
8690
8791 it " highlights sequences with invalid syntax" , ->
8892 for invalid in [' \\ u' , ' \\ u{2000' , ' \\ u{G}' ]
8993 {tokens } = grammar .tokenizeLine (' "' + invalid + ' "' )
90- expect (tokens[1 ]).toEqual value : invalid, scopes : [' source.js' , ' string.quoted.double.js' , ' invalid.illegal.identifier .js' ]
94+ expect (tokens[1 ]).toEqual value : invalid, scopes : [' source.js' , ' string.quoted.double.js' , ' invalid.illegal.unicode-escape .js' ]
9195
9296 it " highlights sequences with invalid codepoints" , ->
9397 maxCodepoint = 0x10FFFF
9498 for codepoint in [0x5000 , 0x11FFFF , 0x1000000 , maxCodepoint]
9599 pointStr = codepoint .toString (16 ).toUpperCase ().replace (/ ^ 0x/ , " " )
96100 {tokens } = grammar .tokenizeLine (' "\\ u{' + pointStr + ' }"' )
97101 pointScopes = [' source.js' , ' string.quoted.double.js' , ' constant.character.escape.js' ]
98- if codepoint > maxCodepoint then pointScopes .push ' invalid.illegal.identifier .js'
102+ if codepoint > maxCodepoint then pointScopes .push ' invalid.illegal.unicode-escape .js'
99103 expect (tokens[0 ]).toEqual value : ' "' , scopes : [' source.js' , ' string.quoted.double.js' , ' punctuation.definition.string.begin.js' ]
100104 expect (tokens[1 ]).toEqual value : ' \\ u' , scopes : [' source.js' , ' string.quoted.double.js' , ' constant.character.escape.js' ]
101- expect (tokens[2 ]).toEqual value : ' {' , scopes : [' source.js' , ' string.quoted.double.js' , ' constant.character.escape.js' , ' punctuation.section.scope.begin.js ' ]
105+ expect (tokens[2 ]).toEqual value : ' {' , scopes : [' source.js' , ' string.quoted.double.js' , ' constant.character.escape.js' , bracketScopes[ 0 ] ]
102106 expect (tokens[3 ]).toEqual value : pointStr, scopes : pointScopes
103- expect (tokens[4 ]).toEqual value : ' }' , scopes : [' source.js' , ' string.quoted.double.js' , ' constant.character.escape.js' , ' punctuation.section.scope.end.js ' ]
107+ expect (tokens[4 ]).toEqual value : ' }' , scopes : [' source.js' , ' string.quoted.double.js' , ' constant.character.escape.js' , bracketScopes[ 1 ] ]
104108 expect (tokens[5 ]).toEqual value : ' "' , scopes : [' source.js' , ' string.quoted.double.js' , ' punctuation.definition.string.end.js' ]
105109
106110 describe " keywords" , ->
0 commit comments