Skip to content

Commit 5ca4926

Browse files
committed
< followed by default can be cast or arrow type parameter
Fixes #62
1 parent 46a048d commit 5ca4926

File tree

7 files changed

+61
-13
lines changed

7 files changed

+61
-13
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ repository:
320320
'3': { name: storage.type.namespace.ts }
321321
'4': { name: entity.name.type.module.ts }
322322
- name: meta.export.default.ts
323-
begin: (?<!\.|\$)\b(export)(?:(?:\s*(=))|(?:\s+(default)\s+))
323+
begin: (?<!\.|\$)\b(export)(?:(?:\s*(=))|(?:\s+(default)(?=\s+)))
324324
beginCaptures:
325325
'1': { name: keyword.control.export.ts }
326326
'2': { name: keyword.operator.assignment.ts }
@@ -968,7 +968,7 @@ repository:
968968
# If '<' is preceeded by 'return', 'throw', 'yield', or 'await', it's most likely a type assertion
969969
# If '=', '(', ',', ':', or '>' are followed by a '<', it is also likely a type assertion as otherwise it would be a syntax error
970970
# '<=' and '<<=' are cannot be type assertions, as they are assignment operators.
971-
begin: '(?:(?<=return|throw|yield|await|[=(,:>*]))\s*(<)(?!<?\=)'
971+
begin: '(?:(?<=return|throw|yield|await|default|[=(,:>*]))\s*(<)(?!<?\=)'
972972
beginCaptures:
973973
'1': { name: meta.brace.angle.ts }
974974
end: '>'
@@ -1093,7 +1093,7 @@ repository:
10931093
'1': { name: storage.modifier.async.ts }
10941094
'2': { name: variable.parameter.ts }
10951095
- name: meta.arrow.ts
1096-
begin: (?x)(?<=return|throw|yield|await|async|[=(\[,:>*])\s*(?=(<[^<>]*(\<[^<>]+\>)*[^<>]*(\<[^<>]+\>)*[^<>]*>\s*)?\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=>)
1096+
begin: (?x)(?<=return|throw|yield|await|async|default|[=(\[,:>*])\s*(?=(<[^<>]*(\<[^<>]+\>)*[^<>]*(\<[^<>]+\>)*[^<>]*>\s*)?\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=>)
10971097
end: (?==>)
10981098
patterns:
10991099
- include: '#comment'

TypeScript.tmLanguage

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,7 +1032,7 @@
10321032
<key>name</key>
10331033
<string>meta.export.default.ts</string>
10341034
<key>begin</key>
1035-
<string>(?&lt;!\.|\$)\b(export)(?:(?:\s*(=))|(?:\s+(default)\s+))</string>
1035+
<string>(?&lt;!\.|\$)\b(export)(?:(?:\s*(=))|(?:\s+(default)(?=\s+)))</string>
10361036
<key>beginCaptures</key>
10371037
<dict>
10381038
<key>1</key>
@@ -2976,7 +2976,7 @@
29762976
<key>name</key>
29772977
<string>cast.expr.ts</string>
29782978
<key>begin</key>
2979-
<string>(?:(?&lt;=return|throw|yield|await|[=(,:&gt;*]))\s*(&lt;)(?!&lt;?\=)</string>
2979+
<string>(?:(?&lt;=return|throw|yield|await|default|[=(,:&gt;*]))\s*(&lt;)(?!&lt;?\=)</string>
29802980
<key>beginCaptures</key>
29812981
<dict>
29822982
<key>1</key>
@@ -3348,7 +3348,7 @@
33483348
<key>name</key>
33493349
<string>meta.arrow.ts</string>
33503350
<key>begin</key>
3351-
<string>(?x)(?&lt;=return|throw|yield|await|async|[=(\[,:&gt;*])\s*(?=(&lt;[^&lt;&gt;]*(\&lt;[^&lt;&gt;]+\&gt;)*[^&lt;&gt;]*(\&lt;[^&lt;&gt;]+\&gt;)*[^&lt;&gt;]*&gt;\s*)?\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=&gt;)</string>
3351+
<string>(?x)(?&lt;=return|throw|yield|await|async|default|[=(\[,:&gt;*])\s*(?=(&lt;[^&lt;&gt;]*(\&lt;[^&lt;&gt;]+\&gt;)*[^&lt;&gt;]*(\&lt;[^&lt;&gt;]+\&gt;)*[^&lt;&gt;]*&gt;\s*)?\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=&gt;)</string>
33523352
<key>end</key>
33533353
<string>(?==&gt;)</string>
33543354
<key>patterns</key>

TypeScriptReact.tmLanguage

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,7 +1036,7 @@
10361036
<key>name</key>
10371037
<string>meta.export.default.tsx</string>
10381038
<key>begin</key>
1039-
<string>(?&lt;!\.|\$)\b(export)(?:(?:\s*(=))|(?:\s+(default)\s+))</string>
1039+
<string>(?&lt;!\.|\$)\b(export)(?:(?:\s*(=))|(?:\s+(default)(?=\s+)))</string>
10401040
<key>beginCaptures</key>
10411041
<dict>
10421042
<key>1</key>
@@ -3330,7 +3330,7 @@
33303330
<key>name</key>
33313331
<string>meta.arrow.tsx</string>
33323332
<key>begin</key>
3333-
<string>(?x)(?&lt;=return|throw|yield|await|async|[=(\[,:&gt;*])\s*(?=(&lt;[^&lt;&gt;]*(\&lt;[^&lt;&gt;]+\&gt;)*[^&lt;&gt;]*(\&lt;[^&lt;&gt;]+\&gt;)*[^&lt;&gt;]*&gt;\s*)?\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=&gt;)</string>
3333+
<string>(?x)(?&lt;=return|throw|yield|await|async|default|[=(\[,:&gt;*])\s*(?=(&lt;[^&lt;&gt;]*(\&lt;[^&lt;&gt;]+\&gt;)*[^&lt;&gt;]*(\&lt;[^&lt;&gt;]+\&gt;)*[^&lt;&gt;]*&gt;\s*)?\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=&gt;)</string>
33343334
<key>end</key>
33353335
<string>(?==&gt;)</string>
33363336
<key>patterns</key>

tests/baselines/Issue200.baseline.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,8 @@ Grammar: TypeScript.tmLanguage
8383
source.ts meta.block.ts meta.export.default.ts
8484
^^^^^^^
8585
source.ts meta.block.ts meta.export.default.ts keyword.control.default.ts
86-
^
86+
^^^^^^
8787
source.ts meta.block.ts meta.export.default.ts
88-
^^^^^
89-
source.ts meta.block.ts meta.export.default.ts
9088
^
9189
source.ts meta.block.ts punctuation.terminator.statement.ts
9290
^^

tests/baselines/Issue200.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ Grammar: TypeScript.tmLanguage
3333
[5, 3]: source.ts meta.block.ts meta.export.default.ts keyword.control.export.ts
3434
^^^^^^^
3535
[5, 10]: source.ts meta.block.ts meta.export.default.ts keyword.control.default.ts
36-
^^^^^
37-
[5, 18]: source.ts meta.block.ts meta.export.default.ts
36+
^^^^^^
37+
[5, 18]: source.ts meta.block.ts meta.export.default.ts
3838
>}
3939
^
4040
[6, 1]: source.ts meta.block.ts punctuation.definition.block.ts

tests/baselines/Issue62.baseline.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
original file
2+
-----------------------------------
3+
// @onlyOwnGrammar - As this has type assertion
4+
export default <ApplicationConfig> {
5+
// config object
6+
}
7+
-----------------------------------
8+
9+
Grammar: TypeScript.tmLanguage
10+
-----------------------------------
11+
>// @onlyOwnGrammar - As this has type assertion
12+
^^
13+
source.ts comment.line.double-slash.ts punctuation.definition.comment.ts
14+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15+
source.ts comment.line.double-slash.ts
16+
>export default <ApplicationConfig> {
17+
^^^^^^
18+
source.ts meta.export.default.ts keyword.control.export.ts
19+
^
20+
source.ts meta.export.default.ts
21+
^^^^^^^
22+
source.ts meta.export.default.ts keyword.control.default.ts
23+
^
24+
source.ts meta.export.default.ts cast.expr.ts
25+
^
26+
source.ts meta.export.default.ts cast.expr.ts meta.brace.angle.ts
27+
^^^^^^^^^^^^^^^^^
28+
source.ts meta.export.default.ts cast.expr.ts entity.name.type.ts
29+
^
30+
source.ts meta.export.default.ts cast.expr.ts meta.brace.angle.ts
31+
^
32+
source.ts meta.export.default.ts
33+
^
34+
source.ts meta.export.default.ts meta.object-literal.ts punctuation.definition.block.ts
35+
^^
36+
source.ts meta.export.default.ts meta.object-literal.ts
37+
> // config object
38+
^^^^
39+
source.ts meta.export.default.ts meta.object-literal.ts punctuation.whitespace.comment.leading.ts
40+
^^
41+
source.ts meta.export.default.ts meta.object-literal.ts comment.line.double-slash.ts punctuation.definition.comment.ts
42+
^^^^^^^^^^^^^^^
43+
source.ts meta.export.default.ts meta.object-literal.ts comment.line.double-slash.ts
44+
>}
45+
^
46+
source.ts meta.export.default.ts meta.object-literal.ts punctuation.definition.block.ts

tests/cases/Issue62.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// @onlyOwnGrammar - As this has type assertion
2+
export default <ApplicationConfig> {
3+
// config object
4+
}

0 commit comments

Comments
 (0)