Skip to content

Commit c9c955a

Browse files
committed
Fix detection of division operator when its followed by !
Fixes #794
1 parent 2e0fded commit c9c955a

File tree

5 files changed

+120
-0
lines changed

5 files changed

+120
-0
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,6 +1643,10 @@ repository:
16431643
match: ===|!==|==|!=
16441644
- name: keyword.operator.relational.ts
16451645
match: <=|>=|<>|<|>
1646+
- match: (\!)\s*(/)(?![/*])
1647+
captures:
1648+
'1': { name: keyword.operator.logical.ts }
1649+
'2': { name: keyword.operator.arithmetic.ts }
16461650
- name: keyword.operator.logical.ts
16471651
match: \!|&&|\|\||\?\?
16481652
- name: keyword.operator.bitwise.ts

TypeScript.tmLanguage

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5342,6 +5342,23 @@
53425342
<key>match</key>
53435343
<string>&lt;=|&gt;=|&lt;&gt;|&lt;|&gt;</string>
53445344
</dict>
5345+
<dict>
5346+
<key>match</key>
5347+
<string>(\!)\s*(/)(?![/*])</string>
5348+
<key>captures</key>
5349+
<dict>
5350+
<key>1</key>
5351+
<dict>
5352+
<key>name</key>
5353+
<string>keyword.operator.logical.ts</string>
5354+
</dict>
5355+
<key>2</key>
5356+
<dict>
5357+
<key>name</key>
5358+
<string>keyword.operator.arithmetic.ts</string>
5359+
</dict>
5360+
</dict>
5361+
</dict>
53455362
<dict>
53465363
<key>name</key>
53475364
<string>keyword.operator.logical.ts</string>

TypeScriptReact.tmLanguage

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5288,6 +5288,23 @@
52885288
<key>match</key>
52895289
<string>&lt;=|&gt;=|&lt;&gt;|&lt;|&gt;</string>
52905290
</dict>
5291+
<dict>
5292+
<key>match</key>
5293+
<string>(\!)\s*(/)(?![/*])</string>
5294+
<key>captures</key>
5295+
<dict>
5296+
<key>1</key>
5297+
<dict>
5298+
<key>name</key>
5299+
<string>keyword.operator.logical.tsx</string>
5300+
</dict>
5301+
<key>2</key>
5302+
<dict>
5303+
<key>name</key>
5304+
<string>keyword.operator.arithmetic.tsx</string>
5305+
</dict>
5306+
</dict>
5307+
</dict>
52915308
<dict>
52925309
<key>name</key>
52935310
<string>keyword.operator.logical.tsx</string>

tests/baselines/Issue794.baseline.txt

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
original file
2+
-----------------------------------
3+
// @onlyOwnGrammar - contains jsx
4+
<Image source={image} style={{ aspectRatio: image.width! / image.height! }} />
5+
-----------------------------------
6+
7+
Grammar: TypeScriptReact.tmLanguage
8+
-----------------------------------
9+
>// @onlyOwnGrammar - contains jsx
10+
^^
11+
source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx
12+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
13+
source.tsx comment.line.double-slash.tsx
14+
><Image source={image} style={{ aspectRatio: image.width! / image.height! }} />
15+
^
16+
source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx
17+
^^^^^
18+
source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx
19+
^
20+
source.tsx meta.tag.tsx meta.tag.attributes.tsx
21+
^^^^^^
22+
source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx
23+
^
24+
source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx
25+
^
26+
source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx
27+
^^^^^
28+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx
29+
^
30+
source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx
31+
^
32+
source.tsx meta.tag.tsx meta.tag.attributes.tsx
33+
^^^^^
34+
source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx
35+
^
36+
source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx
37+
^
38+
source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx
39+
^
40+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx punctuation.definition.block.tsx
41+
^
42+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx
43+
^^^^^^^^^^^
44+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx meta.object-literal.key.tsx
45+
^
46+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx meta.object-literal.key.tsx punctuation.separator.key-value.tsx
47+
^
48+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx
49+
^^^^^
50+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx variable.other.object.tsx
51+
^
52+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx punctuation.accessor.tsx
53+
^^^^^
54+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx support.variable.property.dom.tsx
55+
^
56+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx keyword.operator.logical.tsx
57+
^
58+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx
59+
^
60+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx keyword.operator.arithmetic.tsx
61+
^
62+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx
63+
^^^^^
64+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx variable.other.object.tsx
65+
^
66+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx punctuation.accessor.tsx
67+
^^^^^^
68+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx support.variable.property.dom.tsx
69+
^
70+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx keyword.operator.logical.tsx
71+
^
72+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx
73+
^
74+
source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx punctuation.definition.block.tsx
75+
^
76+
source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx
77+
^
78+
source.tsx meta.tag.tsx meta.tag.attributes.tsx
79+
^^
80+
source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx

tests/cases/Issue794.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// @onlyOwnGrammar - contains jsx
2+
<Image source={image} style={{ aspectRatio: image.width! / image.height! }} />

0 commit comments

Comments
 (0)