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

Commit 282f765

Browse files
committed
Revert "Merge"
This reverts commit 1a96935.
1 parent 1a96935 commit 282f765

File tree

4 files changed

+23
-165
lines changed

4 files changed

+23
-165
lines changed

.travis.yml

-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,3 @@ notifications:
66
on_failure: change
77

88
script: 'curl -s https://raw.githubusercontent.com/atom/ci/master/build-package.sh | sh'
9-
10-
branches:
11-
only:
12-
- master

grammars/javascript.cson

+15-61
Original file line numberDiff line numberDiff line change
@@ -315,23 +315,6 @@
315315
}
316316
]
317317
}
318-
{
319-
'begin': '\\b(constructor)\\s*(\\()'
320-
'beginCaptures':
321-
'1':
322-
'name': 'entity.name.constructor.js'
323-
'2':
324-
'name': 'punctuation.definition.parameters.begin.js'
325-
'end': '(\\))'
326-
'endCaptures':
327-
'1':
328-
'name': 'punctuation.definition.parameters.end.js'
329-
'patterns': [
330-
{
331-
'include': '#function-params'
332-
}
333-
]
334-
}
335318
{
336319
'include': '#methods'
337320
}
@@ -389,7 +372,8 @@
389372
'name': 'support.function.js.console'
390373
}
391374
{
392-
'include': '#numbers'
375+
'match': '\\b((0(x|X)[0-9a-fA-F]+)|(0(b|B)[01]+)|(0(o|O)[0-7]+)|([0-9]+(\\.[0-9]+)?)((e|E)[+-]?[0-9]+)?)\\b'
376+
'name': 'constant.numeric.js'
393377
}
394378
{
395379
'include': '#strings'
@@ -436,16 +420,14 @@
436420
'name': 'storage.modifier.js'
437421
}
438422
{
439-
'begin': '(?<!\\.)\\b(const)(?!\\s*:)\\b'
423+
'begin': '(?<!\\.)\\b(const)(?!\\s*:)\\b\\s+'
440424
'beginCaptures':
441425
'1':
442426
'name': 'storage.modifier.js'
443-
'end': '(=|of|in)|(;)|(?<!,)\\n'
427+
'end': '(=)'
444428
'endCaptures':
445429
'1':
446430
'name': 'keyword.operator.js'
447-
'2':
448-
'name': 'punctuation.terminator.statement.js'
449431
'patterns': [
450432
{
451433
'match': '([$_a-zA-Z][$_a-zA-Z0-9]*)\\s*(:)\\s*([$_a-zA-Z][$_a-zA-Z0-9]*)?'
@@ -469,10 +451,6 @@
469451
'match': ','
470452
'name': 'meta.delimiter.object.comma.js'
471453
}
472-
{
473-
'match': '\\(|\\)'
474-
'name': 'meta.brace.round.js'
475-
}
476454
{
477455
'match': '\\{|\\}'
478456
'name': 'meta.brace.curly.js'
@@ -481,6 +459,9 @@
481459
'match': '\\[|\\]'
482460
'name': 'meta.brace.square.js'
483461
}
462+
{
463+
'match': '\\s+'
464+
}
484465
]
485466
}
486467
{
@@ -628,13 +609,6 @@
628609
}
629610
]
630611
'repository':
631-
'numbers':
632-
'patterns': [
633-
{
634-
'match': '(\\+|\\-)?\\b((0(x|X)[0-9a-fA-F]+)|(0(b|B)[01]+)|(0(o|O)[0-7]+)|([0-9]+(\\.[0-9]+)?)((e|E)[+-]?[0-9]+)?)\\b'
635-
'name': 'constant.numeric.js'
636-
}
637-
]
638612
'strings':
639613
'patterns': [
640614
{
@@ -723,38 +697,18 @@
723697
'function-params':
724698
'patterns': [
725699
{
726-
'include': '#numbers'
727-
}
728-
{
729-
'include': '#strings'
730-
}
731-
{
732-
'match': '\\(|\\)'
733-
'name': 'meta.brace.round.js'
734-
}
735-
{
736-
'match': '\\[|\\]'
737-
'name': 'meta.brace.square.js'
738-
}
739-
{
740-
'match': '\\{|\\}'
741-
'name': 'meta.brace.curly.js'
742-
}
743-
{
744-
'match': ','
745-
'name': 'meta.object.delimiter.js'
746-
}
747-
{
748-
'match': '='
749-
'name': 'keyword.operator.js'
700+
'begin': '(?=[\\p{L}\\p{Nl}$_])'
701+
'end': '(?=[,)\\/])'
702+
'patterns': [
703+
{
704+
'match': '\\G[\\p{L}\\p{Nl}$_][\\p{L}\\p{Nl}$\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\x{200C}\\x{200D}]*'
705+
'name': 'variable.parameter.function.js'
706+
}
707+
]
750708
}
751709
{
752710
'include': '#comments'
753711
}
754-
{
755-
'match': '[a-zA-Z_$][a-zA-Z_$0-9]*'
756-
'name': 'variable.parameter.function.js'
757-
}
758712
]
759713
'interpolated_js':
760714
'patterns': [

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "language-javascript",
3-
"version": "0.86.0",
3+
"version": "0.84.0",
44
"description": "JavaScript language support in Atom",
55
"engines": {
66
"atom": "*",

spec/javascript-spec.coffee

+7-99
Original file line numberDiff line numberDiff line change
@@ -95,41 +95,30 @@ describe "Javascript grammar", ->
9595
expect(tokens[6]).toEqual value: '/', scopes: ['source.js', 'string.regexp.js', 'punctuation.definition.string.end.js']
9696
expect(tokens[7]).toEqual value: ']', scopes: ['source.js', 'meta.brace.square.js']
9797

98-
it "verifies that regular expressions have explicit count modifiers", ->
99-
source = fs.readFileSync(path.resolve(__dirname, '..', 'grammars', 'javascript.cson'), 'utf8')
100-
expect(source.search /{,/).toEqual -1
101-
102-
source = fs.readFileSync(path.resolve(__dirname, '..', 'grammars', 'regular expressions (javascript).cson'), 'utf8')
103-
expect(source.search /{,/).toEqual -1
104-
105-
describe "numbers", ->
106-
it "tokenizes hexadecimals", ->
10798
{tokens} = grammar.tokenizeLine('0x1D306')
10899
expect(tokens[0]).toEqual value: '0x1D306', scopes: ['source.js', 'constant.numeric.js']
109100

110101
{tokens} = grammar.tokenizeLine('0X1D306')
111102
expect(tokens[0]).toEqual value: '0X1D306', scopes: ['source.js', 'constant.numeric.js']
112103

113-
it "tokenizes binary literals", ->
114104
{tokens} = grammar.tokenizeLine('0b011101110111010001100110')
115105
expect(tokens[0]).toEqual value: '0b011101110111010001100110', scopes: ['source.js', 'constant.numeric.js']
116106

117107
{tokens} = grammar.tokenizeLine('0B011101110111010001100110')
118108
expect(tokens[0]).toEqual value: '0B011101110111010001100110', scopes: ['source.js', 'constant.numeric.js']
119109

120-
it "tokenizes octal literals", ->
121110
{tokens} = grammar.tokenizeLine('0o1411')
122111
expect(tokens[0]).toEqual value: '0o1411', scopes: ['source.js', 'constant.numeric.js']
123112

124113
{tokens} = grammar.tokenizeLine('0O1411')
125114
expect(tokens[0]).toEqual value: '0O1411', scopes: ['source.js', 'constant.numeric.js']
126115

127-
it "tokenizes decimals", ->
128-
{tokens} = grammar.tokenizeLine('5e-10')
129-
expect(tokens[0]).toEqual value: '5e-10', scopes: ['source.js', 'constant.numeric.js']
116+
it "verifies that regular expressions have explicit count modifiers", ->
117+
source = fs.readFileSync(path.resolve(__dirname, '..', 'grammars', 'javascript.cson'), 'utf8')
118+
expect(source.search /{,/).toEqual -1
130119

131-
{tokens} = grammar.tokenizeLine('-5E+5')
132-
expect(tokens[0]).toEqual value: '-5E+5', scopes: ['source.js', 'constant.numeric.js']
120+
source = fs.readFileSync(path.resolve(__dirname, '..', 'grammars', 'regular expressions (javascript).cson'), 'utf8')
121+
expect(source.search /{,/).toEqual -1
133122

134123
describe "operators", ->
135124
it "tokenizes void correctly", ->
@@ -223,32 +212,6 @@ describe "Javascript grammar", ->
223212
expect(tokens[6]).toEqual value: '42', scopes: ['source.js', 'constant.numeric.js']
224213
expect(tokens[7]).toEqual value: ';', scopes: ['source.js', 'punctuation.terminator.statement.js']
225214

226-
lines = grammar.tokenizeLines """
227-
const a,
228-
b,
229-
c
230-
if(a)
231-
"""
232-
expect(lines[0][0]).toEqual value: 'const', scopes: ['source.js', 'storage.modifier.js']
233-
expect(lines[0][1]).toEqual value: ' ', scopes: ['source.js']
234-
expect(lines[0][2]).toEqual value: 'a', scopes: ['source.js', 'constant.other.js']
235-
expect(lines[0][3]).toEqual value: ',', scopes: ['source.js', 'meta.delimiter.object.comma.js']
236-
expect(lines[1][0]).toEqual value: 'b', scopes: ['source.js', 'constant.other.js']
237-
expect(lines[1][1]).toEqual value: ',', scopes: ['source.js', 'meta.delimiter.object.comma.js']
238-
expect(lines[2][0]).toEqual value: 'c', scopes: ['source.js', 'constant.other.js']
239-
expect(lines[3][0]).toEqual value: 'if', scopes: ['source.js', 'keyword.control.js']
240-
expect(lines[3][1]).toEqual value: '(', scopes: ['source.js', 'meta.brace.round.js']
241-
expect(lines[3][2]).toEqual value: 'a', scopes: ['source.js']
242-
expect(lines[3][3]).toEqual value: ')', scopes: ['source.js', 'meta.brace.round.js']
243-
244-
{tokens} = grammar.tokenizeLine('(const hi);')
245-
expect(tokens[0]).toEqual value: '(', scopes: ['source.js', 'meta.brace.round.js']
246-
expect(tokens[1]).toEqual value: 'const', scopes: ['source.js', 'storage.modifier.js']
247-
expect(tokens[2]).toEqual value: ' ', scopes: ['source.js']
248-
expect(tokens[3]).toEqual value: 'hi', scopes: ['source.js', 'constant.other.js']
249-
expect(tokens[4]).toEqual value: ')', scopes: ['source.js', 'meta.brace.round.js']
250-
expect(tokens[5]).toEqual value: ';', scopes: ['source.js', 'punctuation.terminator.statement.js']
251-
252215
{tokens} = grammar.tokenizeLine('const {first:f,second,...rest} = obj;')
253216
expect(tokens[0]).toEqual value: 'const', scopes: ['source.js', 'storage.modifier.js']
254217
expect(tokens[1]).toEqual value: ' ', scopes: ['source.js']
@@ -279,25 +242,6 @@ describe "Javascript grammar", ->
279242
expect(tokens[8]).toEqual value: '/', scopes: ['source.js', 'string.regexp.js', 'punctuation.definition.string.end.js']
280243
expect(tokens[9]).toEqual value: ';', scopes: ['source.js', 'punctuation.terminator.statement.js']
281244

282-
it "tokenizes variables declared with `const` in for-in and for-of loops", ->
283-
{tokens} = grammar.tokenizeLine 'for (const elem of array) {'
284-
expect(tokens[0]).toEqual value: 'for', scopes: ['source.js', 'keyword.control.js']
285-
expect(tokens[1]).toEqual value: ' ', scopes: ['source.js']
286-
expect(tokens[2]).toEqual value: '(', scopes: ['source.js', 'meta.brace.round.js']
287-
expect(tokens[3]).toEqual value: 'const', scopes: ['source.js', 'storage.modifier.js']
288-
expect(tokens[4]).toEqual value: ' ', scopes: ['source.js']
289-
expect(tokens[5]).toEqual value: 'elem', scopes: ['source.js', 'constant.other.js']
290-
expect(tokens[6]).toEqual value: ' ', scopes: ['source.js']
291-
expect(tokens[7]).toEqual value: 'of', scopes: ['source.js', 'keyword.operator.js']
292-
expect(tokens[8]).toEqual value: ' array', scopes: ['source.js']
293-
expect(tokens[9]).toEqual value: ')', scopes: ['source.js', 'meta.brace.round.js']
294-
295-
{tokens} = grammar.tokenizeLine 'for (const name in object) {'
296-
expect(tokens[5]).toEqual value: 'name', scopes: ['source.js', 'constant.other.js']
297-
expect(tokens[6]).toEqual value: ' ', scopes: ['source.js']
298-
expect(tokens[7]).toEqual value: 'in', scopes: ['source.js', 'keyword.operator.js']
299-
expect(tokens[8]).toEqual value: ' object', scopes: ['source.js']
300-
301245
it "tokenizes support constants", ->
302246
{tokens} = grammar.tokenizeLine('awesome = cool.systemLanguage;')
303247
expect(tokens[0]).toEqual value: 'awesome ', scopes: ['source.js']
@@ -336,16 +280,6 @@ describe "Javascript grammar", ->
336280
expect(tokens[2]).toEqual value: 'extends', scopes: ['source.js', 'meta.class.js', 'storage.modifier.js']
337281
expect(tokens[4]).toEqual value: 'SomeClass', scopes: ['source.js', 'meta.class.js', 'entity.name.type.js']
338282

339-
it "tokenizes constructors", ->
340-
{tokens} = grammar.tokenizeLine('constructor(a, b)')
341-
expect(tokens[0]).toEqual value: 'constructor', scopes: ['source.js', 'entity.name.constructor.js']
342-
expect(tokens[1]).toEqual value: '(', scopes: ['source.js', 'punctuation.definition.parameters.begin.js']
343-
expect(tokens[2]).toEqual value: 'a', scopes: ['source.js', 'variable.parameter.function.js']
344-
expect(tokens[3]).toEqual value: ',', scopes: ['source.js', 'meta.object.delimiter.js']
345-
expect(tokens[4]).toEqual value: ' ', scopes: ['source.js']
346-
expect(tokens[5]).toEqual value: 'b', scopes: ['source.js', 'variable.parameter.function.js']
347-
expect(tokens[6]).toEqual value: ')', scopes: ['source.js', 'punctuation.definition.parameters.end.js']
348-
349283
describe "ES6 import", ->
350284
it "Tokenizes import ... as", ->
351285
{tokens} = grammar.tokenizeLine('import \'react\' as React')
@@ -431,34 +365,8 @@ describe "Javascript grammar", ->
431365
expect(tokens[0]).toEqual value: 'f', scopes: ['source.js', 'meta.method.js', 'entity.name.function.js']
432366
expect(tokens[1]).toEqual value: '(', scopes: ['source.js', 'meta.method.js', 'punctuation.definition.parameters.begin.js']
433367
expect(tokens[2]).toEqual value: 'a', scopes: ['source.js', 'meta.method.js', 'variable.parameter.function.js']
434-
expect(tokens[3]).toEqual value: ',', scopes: ['source.js', 'meta.method.js', 'meta.object.delimiter.js']
435-
expect(tokens[5]).toEqual value: 'b', scopes: ['source.js', 'meta.method.js', 'variable.parameter.function.js']
436-
expect(tokens[6]).toEqual value: ')', scopes: ['source.js', 'meta.method.js', 'punctuation.definition.parameters.end.js']
437-
438-
{tokens} = grammar.tokenizeLine('hi({host, root = "./", plugins = [a, "b", "c", d]}) {}')
439-
expect(tokens[0]).toEqual value: 'hi', scopes: ['source.js', 'meta.method.js', 'entity.name.function.js']
440-
expect(tokens[1]).toEqual value: '(', scopes: ['source.js', 'meta.method.js', 'punctuation.definition.parameters.begin.js']
441-
expect(tokens[2]).toEqual value: '{', scopes: ['source.js', 'meta.method.js', 'meta.brace.curly.js']
442-
expect(tokens[3]).toEqual value: 'host', scopes: ['source.js', 'meta.method.js', 'variable.parameter.function.js']
443-
expect(tokens[4]).toEqual value: ',', scopes: ['source.js', 'meta.method.js', 'meta.object.delimiter.js']
444-
expect(tokens[6]).toEqual value: 'root', scopes: ['source.js', 'meta.method.js', 'variable.parameter.function.js']
445-
expect(tokens[8]).toEqual value: '=', scopes: ['source.js', 'meta.method.js', 'keyword.operator.js']
446-
expect(tokens[10]).toEqual value: '"', scopes: ['source.js', 'meta.method.js', 'string.quoted.double.js', 'punctuation.definition.string.begin.js']
447-
expect(tokens[11]).toEqual value: './', scopes: ['source.js', 'meta.method.js', 'string.quoted.double.js']
448-
expect(tokens[12]).toEqual value: '"', scopes: ['source.js', 'meta.method.js', 'string.quoted.double.js', 'punctuation.definition.string.end.js']
449-
expect(tokens[13]).toEqual value: ',', scopes: ['source.js', 'meta.method.js', 'meta.object.delimiter.js']
450-
expect(tokens[15]).toEqual value: 'plugins', scopes: ['source.js', 'meta.method.js', 'variable.parameter.function.js']
451-
expect(tokens[17]).toEqual value: '=', scopes: ['source.js', 'meta.method.js', 'keyword.operator.js']
452-
expect(tokens[19]).toEqual value: '[', scopes: ['source.js', 'meta.method.js', 'meta.brace.square.js']
453-
expect(tokens[20]).toEqual value: 'a', scopes: ['source.js', 'meta.method.js', 'variable.parameter.function.js']
454-
expect(tokens[21]).toEqual value: ',', scopes: ['source.js', 'meta.method.js', 'meta.object.delimiter.js']
455-
expect(tokens[23]).toEqual value: '"', scopes: ['source.js', 'meta.method.js', 'string.quoted.double.js', 'punctuation.definition.string.begin.js']
456-
expect(tokens[26]).toEqual value: ',', scopes: ['source.js', 'meta.method.js', 'meta.object.delimiter.js']
457-
expect(tokens[28]).toEqual value: '"', scopes: ['source.js', 'meta.method.js', 'string.quoted.double.js', 'punctuation.definition.string.begin.js']
458-
expect(tokens[33]).toEqual value: 'd', scopes: ['source.js', 'meta.method.js', 'variable.parameter.function.js']
459-
expect(tokens[34]).toEqual value: ']', scopes: ['source.js', 'meta.method.js', 'meta.brace.square.js']
460-
expect(tokens[35]).toEqual value: '}', scopes: ['source.js', 'meta.method.js', 'meta.brace.curly.js']
461-
expect(tokens[36]).toEqual value: ')', scopes: ['source.js', 'meta.method.js', 'punctuation.definition.parameters.end.js']
368+
expect(tokens[4]).toEqual value: 'b', scopes: ['source.js', 'meta.method.js', 'variable.parameter.function.js']
369+
expect(tokens[5]).toEqual value: ')', scopes: ['source.js', 'meta.method.js', 'punctuation.definition.parameters.end.js']
462370

463371
it "tokenizes functions", ->
464372
{tokens} = grammar.tokenizeLine('var func = function nonAnonymous(')

0 commit comments

Comments
 (0)