diff --git a/grammars/javascript.cson b/grammars/javascript.cson index 6ee1fef9..48cfbe0b 100644 --- a/grammars/javascript.cson +++ b/grammars/javascript.cson @@ -371,6 +371,10 @@ 'match': '(? expect(lines[1][0]).toEqual value: '/ ', scopes: ['source.js'] expect(lines[1][1]).toEqual value: '2', scopes: ['source.js', 'constant.numeric.js'] - it "should tokenizes = correctly", -> + it "tokenizes = correctly", -> {tokens} = grammar.tokenizeLine('test = 2') expect(tokens[0]).toEqual value: 'test ', scopes: ['source.js'] expect(tokens[1]).toEqual value: '=', scopes: ['source.js', 'keyword.operator.js'] expect(tokens[2]).toEqual value: ' ', scopes: ['source.js'] expect(tokens[3]).toEqual value: '2', scopes: ['source.js', 'constant.numeric.js'] - it "should tokenizes + correctly", -> + it "tokenizes + correctly", -> {tokens} = grammar.tokenizeLine('test + 2') expect(tokens[0]).toEqual value: 'test ', scopes: ['source.js'] expect(tokens[1]).toEqual value: '+', scopes: ['source.js', 'keyword.operator.js'] @@ -115,34 +115,46 @@ describe "Javascript grammar", -> expect(tokens[3]).toEqual value: '2', scopes: ['source.js', 'constant.numeric.js'] describe "operators with 2 characters", -> - it "should tokenizes += correctly", -> + it "tokenizes += correctly", -> {tokens} = grammar.tokenizeLine('test += 2') expect(tokens[0]).toEqual value: 'test ', scopes: ['source.js'] expect(tokens[1]).toEqual value: '+=', scopes: ['source.js', 'keyword.operator.js'] expect(tokens[2]).toEqual value: ' ', scopes: ['source.js'] expect(tokens[3]).toEqual value: '2', scopes: ['source.js', 'constant.numeric.js'] - it "should tokenizes -= correctly", -> + it "tokenizes -= correctly", -> {tokens} = grammar.tokenizeLine('test -= 2') expect(tokens[0]).toEqual value: 'test ', scopes: ['source.js'] expect(tokens[1]).toEqual value: '-=', scopes: ['source.js', 'keyword.operator.js'] expect(tokens[2]).toEqual value: ' ', scopes: ['source.js'] expect(tokens[3]).toEqual value: '2', scopes: ['source.js', 'constant.numeric.js'] - it "should tokenizes *= correctly", -> + it "tokenizes *= correctly", -> {tokens} = grammar.tokenizeLine('test *= 2') expect(tokens[0]).toEqual value: 'test ', scopes: ['source.js'] expect(tokens[1]).toEqual value: '*=', scopes: ['source.js', 'keyword.operator.js'] expect(tokens[2]).toEqual value: ' ', scopes: ['source.js'] expect(tokens[3]).toEqual value: '2', scopes: ['source.js', 'constant.numeric.js'] - it "should tokenizes /= correctly", -> + it "tokenizes /= correctly", -> {tokens} = grammar.tokenizeLine('test /= 2') expect(tokens[0]).toEqual value: 'test ', scopes: ['source.js'] expect(tokens[1]).toEqual value: '/=', scopes: ['source.js', 'keyword.operator.js'] expect(tokens[2]).toEqual value: ' ', scopes: ['source.js'] expect(tokens[3]).toEqual value: '2', scopes: ['source.js', 'constant.numeric.js'] + describe "constants", -> + it "tokenizes ALL_CAPS variables correctly", -> + {tokens} = grammar.tokenizeLine('var MY_COOL_VAR = 42;') + expect(tokens[0]).toEqual value: 'var', scopes: ['source.js', 'storage.modifier.js'] + expect(tokens[1]).toEqual value: ' ', scopes: ['source.js'] + expect(tokens[2]).toEqual value: 'MY_COOL_VAR', scopes: ['source.js', 'constant.other.js'] + expect(tokens[3]).toEqual value: ' ', scopes: ['source.js'] + expect(tokens[4]).toEqual value: '=', scopes: ['source.js', 'keyword.operator.js'] + expect(tokens[5]).toEqual value: ' ', scopes: ['source.js'] + expect(tokens[6]).toEqual value: '42', scopes: ['source.js', 'constant.numeric.js'] + expect(tokens[7]).toEqual value: ';', scopes: ['source.js', 'punctuation.terminator.statement.js'] + describe "ES6 string templates", -> it "tokenizes them as strings", -> {tokens} = grammar.tokenizeLine('`hey ${name}`')