Skip to content

Commit b5ce6b5

Browse files
committed
Fix the regex lookup to fix #356
1 parent 0951762 commit b5ce6b5

File tree

5 files changed

+232
-3
lines changed

5 files changed

+232
-3
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1638,7 +1638,7 @@ repository:
16381638
- include: '#regexp'
16391639
# Check if complete regexp syntax
16401640
- name: string.regex.ts
1641-
begin: /(?![/*])(?=(?:[^/\\\[]|\\.|\[([^\]\\]|\\.)+\])+/(?![/*])[gimy]*(?!\s*[a-zA-Z0-9_$]))
1641+
begin: (?<![_$[:alnum:]])/(?![/*])(?=(?:[^/\\\[]|\\.|\[([^\]\\]|\\.)+\])+/(?![/*])[gimy]*(?!\s*[a-zA-Z0-9_$]))
16421642
beginCaptures:
16431643
'0': {name: punctuation.definition.string.begin.ts}
16441644
end: (/)([gimuy]*)

TypeScript.tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4495,7 +4495,7 @@
44954495
<key>name</key>
44964496
<string>string.regex.ts</string>
44974497
<key>begin</key>
4498-
<string>/(?![/*])(?=(?:[^/\\\[]|\\.|\[([^\]\\]|\\.)+\])+/(?![/*])[gimy]*(?!\s*[a-zA-Z0-9_$]))</string>
4498+
<string>(?&lt;![_$[:alnum:]])/(?![/*])(?=(?:[^/\\\[]|\\.|\[([^\]\\]|\\.)+\])+/(?![/*])[gimy]*(?!\s*[a-zA-Z0-9_$]))</string>
44994499
<key>beginCaptures</key>
45004500
<dict>
45014501
<key>0</key>

TypeScriptReact.tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4477,7 +4477,7 @@
44774477
<key>name</key>
44784478
<string>string.regex.tsx</string>
44794479
<key>begin</key>
4480-
<string>/(?![/*])(?=(?:[^/\\\[]|\\.|\[([^\]\\]|\\.)+\])+/(?![/*])[gimy]*(?!\s*[a-zA-Z0-9_$]))</string>
4480+
<string>(?&lt;![_$[:alnum:]])/(?![/*])(?=(?:[^/\\\[]|\\.|\[([^\]\\]|\\.)+\])+/(?![/*])[gimy]*(?!\s*[a-zA-Z0-9_$]))</string>
44814481
<key>beginCaptures</key>
44824482
<dict>
44834483
<key>0</key>

tests/baselines/Issue356.baseline.txt

Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
original file
2+
-----------------------------------
3+
function formatBigNum(num) {
4+
num = Number(num)
5+
if (num < 10000) {
6+
return num
7+
}
8+
return (num/10000).toString().replace(/(\.[\d]{1})\d+$/,"$1") + 'w '
9+
}
10+
let hbAnimIndex = 0;
11+
let hbAnimNode = null;
12+
-----------------------------------
13+
14+
Grammar: TypeScript.tmLanguage
15+
-----------------------------------
16+
>function formatBigNum(num) {
17+
^^^^^^^^
18+
source.ts meta.function.ts storage.type.function.ts
19+
^
20+
source.ts meta.function.ts
21+
^^^^^^^^^^^^
22+
source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts
23+
^
24+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
25+
^^^
26+
source.ts meta.function.ts meta.parameters.ts variable.parameter.ts
27+
^
28+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
29+
^
30+
source.ts meta.function.ts
31+
^
32+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
33+
^^
34+
source.ts meta.function.ts meta.block.ts
35+
> num = Number(num)
36+
^^
37+
source.ts meta.function.ts meta.block.ts
38+
^^^
39+
source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts
40+
^
41+
source.ts meta.function.ts meta.block.ts
42+
^
43+
source.ts meta.function.ts meta.block.ts keyword.operator.assignment.ts
44+
^
45+
source.ts meta.function.ts meta.block.ts
46+
^^^^^^
47+
source.ts meta.function.ts meta.block.ts support.class.builtin.ts
48+
^
49+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
50+
^^^
51+
source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts
52+
^
53+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
54+
^^
55+
source.ts meta.function.ts meta.block.ts
56+
> if (num < 10000) {
57+
^^
58+
source.ts meta.function.ts meta.block.ts
59+
^^
60+
source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts
61+
^
62+
source.ts meta.function.ts meta.block.ts
63+
^
64+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
65+
^^^
66+
source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts
67+
^
68+
source.ts meta.function.ts meta.block.ts
69+
^
70+
source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts
71+
^
72+
source.ts meta.function.ts meta.block.ts
73+
^^^^^
74+
source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts
75+
^
76+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
77+
^
78+
source.ts meta.function.ts meta.block.ts
79+
^
80+
source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts
81+
^^
82+
source.ts meta.function.ts meta.block.ts meta.block.ts
83+
> return num
84+
^^^^
85+
source.ts meta.function.ts meta.block.ts meta.block.ts
86+
^^^^^^
87+
source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.flow.ts
88+
^
89+
source.ts meta.function.ts meta.block.ts meta.block.ts
90+
^^^
91+
source.ts meta.function.ts meta.block.ts meta.block.ts variable.other.readwrite.ts
92+
^^
93+
source.ts meta.function.ts meta.block.ts meta.block.ts
94+
> }
95+
^^
96+
source.ts meta.function.ts meta.block.ts meta.block.ts
97+
^
98+
source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts
99+
^^
100+
source.ts meta.function.ts meta.block.ts
101+
> return (num/10000).toString().replace(/(\.[\d]{1})\d+$/,"$1") + 'w '
102+
^^
103+
source.ts meta.function.ts meta.block.ts
104+
^^^^^^
105+
source.ts meta.function.ts meta.block.ts keyword.control.flow.ts
106+
^
107+
source.ts meta.function.ts meta.block.ts
108+
^
109+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
110+
^^^
111+
source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts
112+
^
113+
source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts
114+
^^^^^
115+
source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts
116+
^
117+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
118+
^
119+
source.ts meta.function.ts meta.block.ts punctuation.accessor.ts
120+
^^^^^^^^
121+
source.ts meta.function.ts meta.block.ts support.function.ts
122+
^
123+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
124+
^
125+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
126+
^
127+
source.ts meta.function.ts meta.block.ts punctuation.accessor.ts
128+
^^^^^^^
129+
source.ts meta.function.ts meta.block.ts support.function.ts
130+
^
131+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
132+
^
133+
source.ts meta.function.ts meta.block.ts string.regex.ts punctuation.definition.string.begin.ts
134+
^
135+
source.ts meta.function.ts meta.block.ts string.regex.ts meta.group.regexp punctuation.definition.group.regexp
136+
^^
137+
source.ts meta.function.ts meta.block.ts string.regex.ts meta.group.regexp constant.character.escape.backslash.regexp
138+
^
139+
source.ts meta.function.ts meta.block.ts string.regex.ts meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp
140+
^^
141+
source.ts meta.function.ts meta.block.ts string.regex.ts meta.group.regexp constant.other.character-class.set.regexp constant.other.character-class.regexp
142+
^
143+
source.ts meta.function.ts meta.block.ts string.regex.ts meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp
144+
^^^
145+
source.ts meta.function.ts meta.block.ts string.regex.ts meta.group.regexp keyword.operator.quantifier.regexp
146+
^
147+
source.ts meta.function.ts meta.block.ts string.regex.ts meta.group.regexp punctuation.definition.group.regexp
148+
^^
149+
source.ts meta.function.ts meta.block.ts string.regex.ts constant.other.character-class.regexp
150+
^
151+
source.ts meta.function.ts meta.block.ts string.regex.ts keyword.operator.quantifier.regexp
152+
^
153+
source.ts meta.function.ts meta.block.ts string.regex.ts keyword.control.anchor.regexp
154+
^
155+
source.ts meta.function.ts meta.block.ts string.regex.ts punctuation.definition.string.end.ts
156+
^
157+
source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts
158+
^
159+
source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts
160+
^^
161+
source.ts meta.function.ts meta.block.ts string.quoted.double.ts
162+
^
163+
source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts
164+
^
165+
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
166+
^
167+
source.ts meta.function.ts meta.block.ts
168+
^
169+
source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts
170+
^
171+
source.ts meta.function.ts meta.block.ts
172+
^
173+
source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts
174+
^^
175+
source.ts meta.function.ts meta.block.ts string.quoted.single.ts
176+
^
177+
source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts
178+
^^
179+
source.ts meta.function.ts meta.block.ts
180+
>}
181+
^
182+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
183+
^^
184+
source.ts
185+
>let hbAnimIndex = 0;
186+
^^^
187+
source.ts meta.var.expr.ts storage.type.ts
188+
^
189+
source.ts meta.var.expr.ts
190+
^^^^^^^^^^^
191+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
192+
^
193+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
194+
^
195+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
196+
^
197+
source.ts meta.var.expr.ts
198+
^
199+
source.ts meta.var.expr.ts constant.numeric.decimal.ts
200+
^
201+
source.ts punctuation.terminator.statement.ts
202+
^^
203+
source.ts
204+
>let hbAnimNode = null;
205+
^^^
206+
source.ts meta.var.expr.ts storage.type.ts
207+
^
208+
source.ts meta.var.expr.ts
209+
^^^^^^^^^^
210+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
211+
^
212+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
213+
^
214+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
215+
^
216+
source.ts meta.var.expr.ts
217+
^^^^
218+
source.ts meta.var.expr.ts constant.language.null.ts
219+
^
220+
source.ts punctuation.terminator.statement.ts

tests/cases/Issue356.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function formatBigNum(num) {
2+
num = Number(num)
3+
if (num < 10000) {
4+
return num
5+
}
6+
return (num/10000).toString().replace(/(\.[\d]{1})\d+$/,"$1") + 'w '
7+
}
8+
let hbAnimIndex = 0;
9+
let hbAnimNode = null;

0 commit comments

Comments
 (0)