Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit d8f47aa

Browse files
WliuWliu
authored andcommitted
Merge pull request #291 from MaximSokolov/tokenize-spread-operator
Tokenize spread operator
2 parents a41ae12 + 75eb803 commit d8f47aa

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

grammars/javascript.cson

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,7 @@
694694
}
695695
{
696696
'match': '\\.\\.\\.'
697-
'name': 'keyword.operator.js'
697+
'name': 'keyword.operator.spread.js'
698698
}
699699
{
700700
'match': ','
@@ -742,6 +742,10 @@
742742
'match': '(?<!\\.)\\b(delete|in|of|instanceof|new|typeof|void)(?!\\s*:)\\b'
743743
'name': 'keyword.operator.$1.js'
744744
}
745+
{
746+
'match': '\\.\\.\\.'
747+
'name': 'keyword.operator.spread.js'
748+
}
745749
{
746750
'match': '(?<!\\.)\\b(true|false)(?!\\s*:)\\b|(?<=\\?)(?:\\s*)(true|false)(?=\\s*:)'
747751
'captures':

spec/javascript-spec.coffee

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,15 @@ describe "Javascript grammar", ->
243243
expect(tokens[1]).toEqual value: operator, scopes: ['source.js', 'keyword.operator.logical.js']
244244
expect(tokens[2]).toEqual value: ' b', scopes: ['source.js']
245245

246+
it "tokenizes spread operator", ->
247+
{tokens} = grammar.tokenizeLine('myFunction(...args);')
248+
expect(tokens[2]).toEqual value: '...', scopes: ['source.js', 'meta.function-call.js', 'keyword.operator.spread.js']
249+
expect(tokens[3]).toEqual value: 'args', scopes: ['source.js', 'meta.function-call.js']
250+
251+
{tokens} = grammar.tokenizeLine('[...iterableObj]')
252+
expect(tokens[1]).toEqual value: '...', scopes: ['source.js', 'keyword.operator.spread.js']
253+
expect(tokens[2]).toEqual value: 'iterableObj', scopes: ['source.js']
254+
246255
describe "comparison", ->
247256
operators = ["<=", ">=", "!=", "!==", "===", "==", "<", ">" ]
248257

@@ -380,7 +389,7 @@ describe "Javascript grammar", ->
380389
expect(tokens[6]).toEqual value: ',', scopes: ['source.js', 'meta.delimiter.object.comma.js']
381390
expect(tokens[7]).toEqual value: 'second', scopes: ['source.js', 'constant.other.js']
382391
expect(tokens[8]).toEqual value: ',', scopes: ['source.js', 'meta.delimiter.object.comma.js']
383-
expect(tokens[9]).toEqual value: '...', scopes: ['source.js', 'keyword.operator.js']
392+
expect(tokens[9]).toEqual value: '...', scopes: ['source.js', 'keyword.operator.spread.js']
384393
expect(tokens[10]).toEqual value: 'rest', scopes: ['source.js', 'constant.other.js']
385394
expect(tokens[11]).toEqual value: '}', scopes: ['source.js', 'meta.brace.curly.js']
386395
expect(tokens[12]).toEqual value: ' ', scopes: ['source.js']

0 commit comments

Comments
 (0)