Skip to content

Commit 145270e

Browse files
committed
Fix incorrect highlighting of jsx expression following comment
Fixes #754
1 parent deb6822 commit 145270e

File tree

4 files changed

+72
-3
lines changed

4 files changed

+72
-3
lines changed

TypeScriptReact.YAML-tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ variables:
1818
jsxClosingTag: (</){{jsxTagName}}?\s*(>)
1919
jsxTagStart: (<){{jsxTagName}}(?=((<\s*)|(\s+))(?!\?)|\/?>)
2020
jsxTagStartLookahead: (?={{jsxTagStart}})
21-
jsxLookBehindInExpression: (?<!\+\+|--)(?<=[({\[,?=>:*]|&&|\|\||\?|{{lookBehindAwait}}|{{lookBehindReturn}}|{{lookBehindDefault}}|{{lookBehindYield}}|^)\s*
21+
jsxLookBehindInExpression: (?<!\+\+|--)(?<=[({\[,?=>:*]|&&|\|\||\?|\*\/|{{lookBehindAwait}}|{{lookBehindReturn}}|{{lookBehindDefault}}|{{lookBehindYield}}|^)\s*
2222

2323
repository:
2424
# Additions:

TypeScriptReact.tmLanguage

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9040,7 +9040,7 @@
90409040
<key>jsx-tag-without-attributes-in-expression</key>
90419041
<dict>
90429042
<key>begin</key>
9043-
<string>(?&lt;!\+\+|--)(?&lt;=[({\[,?=&gt;:*]|&amp;&amp;|\|\||\?|^await|[^\._$[:alnum:]]await|^return|[^\._$[:alnum:]]return|^default|[^\._$[:alnum:]]default|^yield|[^\._$[:alnum:]]yield|^)\s*(?=(&lt;)\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\.|-))?\s*(&gt;))</string>
9043+
<string>(?&lt;!\+\+|--)(?&lt;=[({\[,?=&gt;:*]|&amp;&amp;|\|\||\?|\*\/|^await|[^\._$[:alnum:]]await|^return|[^\._$[:alnum:]]return|^default|[^\._$[:alnum:]]default|^yield|[^\._$[:alnum:]]yield|^)\s*(?=(&lt;)\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\.|-))?\s*(&gt;))</string>
90449044
<key>end</key>
90459045
<string>(?!(&lt;)\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\.|-))?\s*(&gt;))</string>
90469046
<key>patterns</key>
@@ -9139,7 +9139,7 @@
91399139
<dict>
91409140
<key>begin</key>
91419141
<string>(?x)
9142-
(?&lt;!\+\+|--)(?&lt;=[({\[,?=&gt;:*]|&amp;&amp;|\|\||\?|^await|[^\._$[:alnum:]]await|^return|[^\._$[:alnum:]]return|^default|[^\._$[:alnum:]]default|^yield|[^\._$[:alnum:]]yield|^)\s*
9142+
(?&lt;!\+\+|--)(?&lt;=[({\[,?=&gt;:*]|&amp;&amp;|\|\||\?|\*\/|^await|[^\._$[:alnum:]]await|^return|[^\._$[:alnum:]]return|^default|[^\._$[:alnum:]]default|^yield|[^\._$[:alnum:]]yield|^)\s*
91439143
(?!&lt;\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s+[^=&gt;])|,)) # look ahead is not type parameter of arrow
91449144
(?=(&lt;)\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\.|-))(?=((&lt;\s*)|(\s+))(?!\?)|\/?&gt;))</string>
91459145
<key>end</key>

tests/baselines/Issue754.baseline.txt

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
original file
2+
-----------------------------------
3+
// @onlyOwnGrammar - As this has jsx
4+
const b = <Element />;
5+
const a = /**/ <Element />;
6+
-----------------------------------
7+
8+
Grammar: TypeScriptReact.tmLanguage
9+
-----------------------------------
10+
>// @onlyOwnGrammar - As this has jsx
11+
^^
12+
source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx
13+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14+
source.tsx comment.line.double-slash.tsx
15+
>const b = <Element />;
16+
^^^^^
17+
source.tsx meta.var.expr.tsx storage.type.tsx
18+
^
19+
source.tsx meta.var.expr.tsx
20+
^
21+
source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx
22+
^
23+
source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx
24+
^
25+
source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx
26+
^
27+
source.tsx meta.var.expr.tsx
28+
^
29+
source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx
30+
^^^^^^^
31+
source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx
32+
^
33+
source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx
34+
^^
35+
source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx
36+
^
37+
source.tsx punctuation.terminator.statement.tsx
38+
>const a = /**/ <Element />;
39+
^^^^^
40+
source.tsx meta.var.expr.tsx storage.type.tsx
41+
^
42+
source.tsx meta.var.expr.tsx
43+
^
44+
source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx
45+
^
46+
source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx
47+
^
48+
source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx
49+
^
50+
source.tsx meta.var.expr.tsx
51+
^^
52+
source.tsx meta.var.expr.tsx comment.block.tsx punctuation.definition.comment.tsx
53+
^^
54+
source.tsx meta.var.expr.tsx comment.block.tsx punctuation.definition.comment.tsx
55+
^
56+
source.tsx meta.var.expr.tsx
57+
^
58+
source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx
59+
^^^^^^^
60+
source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx
61+
^
62+
source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx
63+
^^
64+
source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx
65+
^
66+
source.tsx punctuation.terminator.statement.tsx

tests/cases/Issue754.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// @onlyOwnGrammar - As this has jsx
2+
const b = <Element />;
3+
const a = /**/ <Element />;

0 commit comments

Comments
 (0)