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

Commit ea15b19

Browse files
author
Wliu
authored
Merge pull request #463 from Alhadis/fix-460
Fix #460: Incorrect highlighting for multiline imports
2 parents 18c87f6 + f4f72f0 commit ea15b19

File tree

2 files changed

+227
-46
lines changed

2 files changed

+227
-46
lines changed

grammars/javascript.cson

Lines changed: 34 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@
3939
'patterns': [
4040
{
4141
# ES6 import
42-
'begin': '(?<!\\.)\\b(import)(?!\\s*[:(])\\b'
42+
'begin': '(?<!\\.)\\b(import)(?:\\s*$|(?!\\s*[:(])\\b)'
4343
'beginCaptures':
4444
'1':
4545
'name': 'keyword.control.js'
46-
'end': '(?=;|$)'
46+
'end': '(?=;)'
4747
'name': 'meta.import.js'
4848
'patterns': [
4949
{
@@ -58,69 +58,58 @@
5858
'name': 'punctuation.definition.modules.end.js'
5959
'patterns': [
6060
{
61-
# (default|name) as alias
62-
'match': '''(?x)
63-
(?: \\b(default)\\b | \\b([a-zA-Z_$][\\w$]*)\\b)
64-
\\s*
65-
(\\b as \\b)
66-
\\s*
67-
(?: (\\b default \\b | \\*) | \\b([a-zA-Z_$][\\w$]*)\\b)
68-
'''
69-
'captures':
70-
'1':
71-
'name': 'variable.language.default.js'
72-
'2':
73-
'name': 'variable.other.module.js'
74-
'3':
61+
'match': '\\bdefault\\b'
62+
'name': 'variable.language.default.js'
63+
}
64+
{
65+
'include': '#comments'
66+
}
67+
{
68+
'begin': '\\bas\\b'
69+
'beginCaptures':
70+
'0':
7571
'name': 'keyword.control.js'
76-
'4':
72+
'end': '(?=[;}]|/\\*)|(?:(\\bdefault\\b|\\*)|([a-zA-Z_$][\\w$]*))'
73+
'endCaptures':
74+
'1':
7775
'name': 'invalid.illegal.js'
78-
'5':
76+
'2':
7977
'name': 'variable.other.module-alias.js'
78+
'patterns': [
79+
{
80+
'include': '#comments'
81+
}
82+
]
8083
}
8184
{
8285
'match': ','
8386
'name': 'meta.delimiter.object.comma.js'
8487
}
85-
{
86-
'include': '#comments'
87-
}
8888
{
8989
'match': '\\b([a-zA-Z_$][\\w$]*)\\b'
9090
'name': 'variable.other.module.js'
9191
}
9292
]
9393
}
9494
{
95-
# (default|*|name) as alias
96-
'match': '''(?x)
97-
(?: \\b(default)\\b | (\\*) | \\b([a-zA-Z_$][\\w$]*)\\b)
98-
\\s*
99-
(\\b as \\b)
100-
\\s*
101-
(?: (\\b default \\b | \\*) | \\b([a-zA-Z_$][\\w$]*)\\b)
102-
'''
103-
'captures':
104-
'1':
105-
'name': 'variable.language.default.js'
106-
'2':
107-
'name': 'variable.language.import-all.js'
108-
'3':
109-
'name': 'variable.other.module.js'
110-
'4':
111-
'name': 'keyword.control.js'
112-
'5':
113-
'name': 'invalid.illegal.js'
114-
'6':
115-
'name': 'variable.other.module-alias.js'
95+
'match': '\\bdefault\\b'
96+
'name': 'variable.language.default.js'
11697
}
11798
{
11899
'match': '\\*'
119100
'name': 'variable.language.import-all.js'
120101
}
121102
{
122-
'match': '\\b(default)\\b'
123-
'name': 'variable.language.default.js'
103+
'begin': '\\bas\\b'
104+
'beginCaptures':
105+
'0':
106+
'name': 'keyword.control.js'
107+
'end': '(?=[;}]|/\\*)|(?:(\\bdefault\\b|\\*)|([a-zA-Z_$][\\w$]*))'
108+
'endCaptures':
109+
'1':
110+
'name': 'invalid.illegal.js'
111+
'2':
112+
'name': 'variable.other.module-alias.js'
124113
}
125114
{
126115
'include': '#strings'
@@ -133,7 +122,7 @@
133122
'name': 'keyword.control.js'
134123
}
135124
{
136-
'match': '\\b([a-zA-Z_$][\\w$]*)\\b(?=.*\\bfrom\\b)'
125+
'match': '\\b([a-zA-Z_$][\\w$]*)\\b'
137126
'name': 'variable.other.module.js'
138127
}
139128
{

0 commit comments

Comments
 (0)