Skip to content

Commit a755c6b

Browse files
committed
Support for intrinsic keyword in type alias as part of microsoft/TypeScript#40580
1 parent 784ee07 commit a755c6b

File tree

5 files changed

+164
-0
lines changed

5 files changed

+164
-0
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,6 +1074,13 @@ repository:
10741074
patterns:
10751075
- include: '#comment'
10761076
- include: '#type-parameters'
1077+
- begin: '(=)\s*(intrinsic){{endOfIdentifier}}'
1078+
beginCaptures:
1079+
'1': { name: keyword.operator.assignment.ts }
1080+
'2': { name: keyword.control.intrinsic.ts }
1081+
end: (?=\}|{{endOfStatement}})
1082+
patterns:
1083+
- include: '#type'
10771084
- begin: '(=)\s*'
10781085
beginCaptures:
10791086
'1': { name: keyword.operator.assignment.ts }

TypeScript.tmLanguage

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3387,6 +3387,32 @@
33873387
<key>include</key>
33883388
<string>#type-parameters</string>
33893389
</dict>
3390+
<dict>
3391+
<key>begin</key>
3392+
<string>(=)\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
3393+
<key>beginCaptures</key>
3394+
<dict>
3395+
<key>1</key>
3396+
<dict>
3397+
<key>name</key>
3398+
<string>keyword.operator.assignment.ts</string>
3399+
</dict>
3400+
<key>2</key>
3401+
<dict>
3402+
<key>name</key>
3403+
<string>keyword.control.intrinsic.ts</string>
3404+
</dict>
3405+
</dict>
3406+
<key>end</key>
3407+
<string>(?=\}|;|(?:^\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\b))</string>
3408+
<key>patterns</key>
3409+
<array>
3410+
<dict>
3411+
<key>include</key>
3412+
<string>#type</string>
3413+
</dict>
3414+
</array>
3415+
</dict>
33903416
<dict>
33913417
<key>begin</key>
33923418
<string>(=)\s*</string>

TypeScriptReact.tmLanguage

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3409,6 +3409,32 @@
34093409
<key>include</key>
34103410
<string>#type-parameters</string>
34113411
</dict>
3412+
<dict>
3413+
<key>begin</key>
3414+
<string>(=)\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.))</string>
3415+
<key>beginCaptures</key>
3416+
<dict>
3417+
<key>1</key>
3418+
<dict>
3419+
<key>name</key>
3420+
<string>keyword.operator.assignment.tsx</string>
3421+
</dict>
3422+
<key>2</key>
3423+
<dict>
3424+
<key>name</key>
3425+
<string>keyword.control.intrinsic.tsx</string>
3426+
</dict>
3427+
</dict>
3428+
<key>end</key>
3429+
<string>(?=\}|;|(?:^\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\b))</string>
3430+
<key>patterns</key>
3431+
<array>
3432+
<dict>
3433+
<key>include</key>
3434+
<string>#type</string>
3435+
</dict>
3436+
</array>
3437+
</dict>
34123438
<dict>
34133439
<key>begin</key>
34143440
<string>(=)\s*</string>
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
original file
2+
-----------------------------------
3+
type Uppercase<S extends string> = intrinsic;
4+
type Lowercase<S extends string> = intrinsic;
5+
type Capitalize<S extends string> = intrinsic;
6+
-----------------------------------
7+
8+
Grammar: TypeScript.tmLanguage
9+
-----------------------------------
10+
>type Uppercase<S extends string> = intrinsic;
11+
^^^^
12+
source.ts meta.type.declaration.ts storage.type.type.ts
13+
^
14+
source.ts meta.type.declaration.ts
15+
^^^^^^^^^
16+
source.ts meta.type.declaration.ts entity.name.type.alias.ts
17+
^
18+
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts
19+
^
20+
source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts
21+
^
22+
source.ts meta.type.declaration.ts meta.type.parameters.ts
23+
^^^^^^^
24+
source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts
25+
^
26+
source.ts meta.type.declaration.ts meta.type.parameters.ts
27+
^^^^^^
28+
source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts
29+
^
30+
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts
31+
^
32+
source.ts meta.type.declaration.ts
33+
^
34+
source.ts meta.type.declaration.ts keyword.operator.assignment.ts
35+
^
36+
source.ts meta.type.declaration.ts
37+
^^^^^^^^^
38+
source.ts meta.type.declaration.ts keyword.control.intrinsic.ts
39+
^
40+
source.ts punctuation.terminator.statement.ts
41+
>type Lowercase<S extends string> = intrinsic;
42+
^^^^
43+
source.ts meta.type.declaration.ts storage.type.type.ts
44+
^
45+
source.ts meta.type.declaration.ts
46+
^^^^^^^^^
47+
source.ts meta.type.declaration.ts entity.name.type.alias.ts
48+
^
49+
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts
50+
^
51+
source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts
52+
^
53+
source.ts meta.type.declaration.ts meta.type.parameters.ts
54+
^^^^^^^
55+
source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts
56+
^
57+
source.ts meta.type.declaration.ts meta.type.parameters.ts
58+
^^^^^^
59+
source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts
60+
^
61+
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts
62+
^
63+
source.ts meta.type.declaration.ts
64+
^
65+
source.ts meta.type.declaration.ts keyword.operator.assignment.ts
66+
^
67+
source.ts meta.type.declaration.ts
68+
^^^^^^^^^
69+
source.ts meta.type.declaration.ts keyword.control.intrinsic.ts
70+
^
71+
source.ts punctuation.terminator.statement.ts
72+
>type Capitalize<S extends string> = intrinsic;
73+
^^^^
74+
source.ts meta.type.declaration.ts storage.type.type.ts
75+
^
76+
source.ts meta.type.declaration.ts
77+
^^^^^^^^^^
78+
source.ts meta.type.declaration.ts entity.name.type.alias.ts
79+
^
80+
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts
81+
^
82+
source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts
83+
^
84+
source.ts meta.type.declaration.ts meta.type.parameters.ts
85+
^^^^^^^
86+
source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts
87+
^
88+
source.ts meta.type.declaration.ts meta.type.parameters.ts
89+
^^^^^^
90+
source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts
91+
^
92+
source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts
93+
^
94+
source.ts meta.type.declaration.ts
95+
^
96+
source.ts meta.type.declaration.ts keyword.operator.assignment.ts
97+
^
98+
source.ts meta.type.declaration.ts
99+
^^^^^^^^^
100+
source.ts meta.type.declaration.ts keyword.control.intrinsic.ts
101+
^
102+
source.ts punctuation.terminator.statement.ts

tests/cases/intrinsic.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
type Uppercase<S extends string> = intrinsic;
2+
type Lowercase<S extends string> = intrinsic;
3+
type Capitalize<S extends string> = intrinsic;

0 commit comments

Comments
 (0)