Skip to content

Commit bc677ff

Browse files
committed
Merge pull request atom#139 from AMalininHere/master
Added support for params in arrows
2 parents a739fb2 + 72ae11a commit bc677ff

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

grammars/javascript.cson

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,25 @@
273273
'name': 'entity.name.type.js'
274274
'name': 'meta.class.js'
275275
}
276+
{
277+
'name': 'meta.function.arrow.js'
278+
'begin': '(?<![A-Za-z0-9])(\\()(?=(?:[^\\(\\)]*)?\\)\\s*=>)'
279+
'beginCaptures':
280+
'1':
281+
'name': 'punctuation.definition.parameters.begin.js'
282+
283+
'end': '(\\))(\\s*=>)'
284+
'endCaptures':
285+
'1':
286+
'name': 'punctuation.definition.parameters.end.js'
287+
'2':
288+
'name': 'storage.type.arrow.js'
289+
'patterns': [
290+
{
291+
'include': '#function-params'
292+
}
293+
]
294+
}
276295
{
277296
'captures':
278297
'1':

spec/javascript-spec.coffee

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,14 @@ describe "Javascript grammar", ->
227227
{tokens} = grammar.tokenizeLine('default: ')
228228
expect(tokens[0]).toEqual value: 'default', scopes: ['source.js', 'keyword.control.js']
229229

230+
it "tokenizes arrow functions with params", ->
231+
{tokens} = grammar.tokenizeLine('(param1,param2)=>{}')
232+
expect(tokens[0]).toEqual value: '(', scopes: ['source.js', 'meta.function.arrow.js', 'punctuation.definition.parameters.begin.js']
233+
expect(tokens[1]).toEqual value: 'param1', scopes: ['source.js', 'meta.function.arrow.js', 'variable.parameter.function.js']
234+
expect(tokens[3]).toEqual value: 'param2', scopes: ['source.js', 'meta.function.arrow.js', 'variable.parameter.function.js']
235+
expect(tokens[4]).toEqual value: ')', scopes: ['source.js', 'meta.function.arrow.js', 'punctuation.definition.parameters.end.js']
236+
expect(tokens[5]).toEqual value: '=>', scopes: ['source.js', 'meta.function.arrow.js', 'storage.type.arrow.js']
237+
230238
it "tokenizes comments in function params", ->
231239
{tokens} = grammar.tokenizeLine('foo: function (/**Bar*/bar){')
232240

0 commit comments

Comments
 (0)