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

Commit 84b91e8

Browse files
author
Wliu
authored
Merge pull request #417 from MaximSokolov/fix-function-keyword-as-propery-name
Fix function keyword as property name
2 parents 0b4b99c + 3a402d4 commit 84b91e8

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

Diff for: grammars/javascript.cson

+2-2
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@
285285
{
286286
# [async] function [name](params)
287287
# function* name(params) – generator function declaration
288-
'begin': '(?=(\\basync\\b\\s*)?\\bfunction\\b)'
288+
'begin': '(?=(\\basync\\b\\s*)?\\bfunction\\b(?!\\s*:))'
289289
'end': '(?<=})'
290290
'patterns': [
291291
{
@@ -579,7 +579,7 @@
579579
(?<=})|
580580
((?!
581581
\\s*{|
582-
\\G[\\w$]+:|
582+
\\G[\\w$]+\\s*:|
583583
\\s*/\\*|\\s*//
584584
)(?=\\s*\\S))
585585
'''

Diff for: spec/javascript-spec.coffee

+17
Original file line numberDiff line numberDiff line change
@@ -1012,6 +1012,23 @@ describe "Javascript grammar", ->
10121012
expect(tokens[7]).toEqual value: 'foo', scopes: ['source.js', 'meta.function.json.js', 'entity.name.function.js']
10131013
expect(tokens[8]).toEqual value: '(', scopes: ['source.js', 'meta.function.json.js', 'meta.parameters.js', 'punctuation.definition.parameters.begin.bracket.round.js']
10141014

1015+
{tokens} = grammar.tokenizeLine('function : a => a')
1016+
expect(tokens[0]).toEqual value: 'function', scopes: ['source.js', 'meta.function.arrow.json.js', 'entity.name.function.js']
1017+
expect(tokens[2]).toEqual value: ':', scopes: ['source.js', 'meta.function.arrow.json.js', 'keyword.operator.assignment.js']
1018+
expect(tokens[4]).toEqual value: 'a', scopes: ['source.js', 'meta.function.arrow.json.js', 'meta.parameters.js', 'variable.parameter.function.js']
1019+
expect(tokens[6]).toEqual value: '=>', scopes: ['source.js', 'meta.function.arrow.json.js', 'storage.type.function.arrow.js']
1020+
expect(tokens[7]).toEqual value: ' a', scopes: ['source.js']
1021+
1022+
{tokens} = grammar.tokenizeLine('"func": a => a')
1023+
expect(tokens[1]).toEqual value: 'func', scopes: ['source.js', 'meta.function.arrow.json.js', 'string.quoted.double.js', 'entity.name.function.js']
1024+
expect(tokens[3]).toEqual value: ':', scopes: ['source.js', 'meta.function.arrow.json.js', 'keyword.operator.assignment.js']
1025+
expect(tokens[5]).toEqual value: 'a', scopes: ['source.js', 'meta.function.arrow.json.js', 'meta.parameters.js', 'variable.parameter.function.js']
1026+
expect(tokens[7]).toEqual value: '=>', scopes: ['source.js', 'meta.function.arrow.json.js', 'storage.type.function.arrow.js']
1027+
expect(tokens[8]).toEqual value: ' a', scopes: ['source.js']
1028+
1029+
{tokens} = grammar.tokenizeLine('"func" : a => a')
1030+
expect(tokens[8]).toEqual value: '=>', scopes: ['source.js', 'meta.function.arrow.json.js', 'storage.type.function.arrow.js']
1031+
10151032
it "tokenizes generator functions", ->
10161033
{tokens} = grammar.tokenizeLine('function* foo(){}')
10171034
expect(tokens[0]).toEqual value: 'function', scopes: ['source.js', 'meta.function.js', 'storage.type.function.js']

0 commit comments

Comments
 (0)