Skip to content

Commit 0dfae8c

Browse files
committed
Resolution mode support
Fixes microsoft/TypeScript#47732
1 parent 1d5a44a commit 0dfae8c

5 files changed

+99
-6
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2887,7 +2887,7 @@ repository:
28872887

28882888
directives:
28892889
name: comment.line.triple-slash.directive.ts
2890-
begin: ^(///)\s*(?=<(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|lib|name)\s*=\s*({{quotedStrings}}))+\s*/>\s*$)
2890+
begin: ^(///)\s*(?=<(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|lib|name|resolution-mode)\s*=\s*({{quotedStrings}}))+\s*/>\s*$)
28912891
beginCaptures:
28922892
'1': { name: punctuation.definition.comment.ts }
28932893
end: (?=$)
@@ -2902,7 +2902,7 @@ repository:
29022902
'0': { name: punctuation.definition.tag.directive.ts }
29032903
patterns:
29042904
- name: entity.other.attribute-name.directive.ts
2905-
match: 'path|types|no-default-lib|lib|name'
2905+
match: 'path|types|no-default-lib|lib|name|resolution-mode'
29062906
- name: keyword.operator.assignment.ts
29072907
match: '='
29082908
- include: '#string'

TypeScript.tmLanguage

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8811,7 +8811,7 @@
88118811
<key>name</key>
88128812
<string>comment.line.triple-slash.directive.ts</string>
88138813
<key>begin</key>
8814-
<string>^(///)\s*(?=&lt;(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|lib|name)\s*=\s*((\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`)))+\s*/&gt;\s*$)</string>
8814+
<string>^(///)\s*(?=&lt;(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|lib|name|resolution-mode)\s*=\s*((\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`)))+\s*/&gt;\s*$)</string>
88158815
<key>beginCaptures</key>
88168816
<dict>
88178817
<key>1</key>
@@ -8858,7 +8858,7 @@
88588858
<key>name</key>
88598859
<string>entity.other.attribute-name.directive.ts</string>
88608860
<key>match</key>
8861-
<string>path|types|no-default-lib|lib|name</string>
8861+
<string>path|types|no-default-lib|lib|name|resolution-mode</string>
88628862
</dict>
88638863
<dict>
88648864
<key>name</key>

TypeScriptReact.tmLanguage

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8759,7 +8759,7 @@
87598759
<key>name</key>
87608760
<string>comment.line.triple-slash.directive.tsx</string>
87618761
<key>begin</key>
8762-
<string>^(///)\s*(?=&lt;(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|lib|name)\s*=\s*((\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`)))+\s*/&gt;\s*$)</string>
8762+
<string>^(///)\s*(?=&lt;(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|lib|name|resolution-mode)\s*=\s*((\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`)))+\s*/&gt;\s*$)</string>
87638763
<key>beginCaptures</key>
87648764
<dict>
87658765
<key>1</key>
@@ -8806,7 +8806,7 @@
88068806
<key>name</key>
88078807
<string>entity.other.attribute-name.directive.tsx</string>
88088808
<key>match</key>
8809-
<string>path|types|no-default-lib|lib|name</string>
8809+
<string>path|types|no-default-lib|lib|name|resolution-mode</string>
88108810
</dict>
88118811
<dict>
88128812
<key>name</key>
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
original file
2+
-----------------------------------
3+
/// <reference types="pkg" resolution-mode="require" />
4+
/// <reference types="pkg" resolution-mode="import" />
5+
6+
7+
-----------------------------------
8+
9+
Grammar: TypeScript.tmLanguage
10+
-----------------------------------
11+
>/// <reference types="pkg" resolution-mode="require" />
12+
^^^
13+
source.ts comment.line.triple-slash.directive.ts punctuation.definition.comment.ts
14+
^
15+
source.ts comment.line.triple-slash.directive.ts
16+
^
17+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts
18+
^^^^^^^^^
19+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.name.tag.directive.ts
20+
^
21+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts
22+
^^^^^
23+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts
24+
^
25+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts
26+
^
27+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts
28+
^^^
29+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts
30+
^
31+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts
32+
^
33+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts
34+
^^^^^^^^^^^^^^^
35+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts
36+
^
37+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts
38+
^
39+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts
40+
^^^^^^^
41+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts
42+
^
43+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts
44+
^
45+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts
46+
^^
47+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts
48+
>/// <reference types="pkg" resolution-mode="import" />
49+
^^^
50+
source.ts comment.line.triple-slash.directive.ts punctuation.definition.comment.ts
51+
^
52+
source.ts comment.line.triple-slash.directive.ts
53+
^
54+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts
55+
^^^^^^^^^
56+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.name.tag.directive.ts
57+
^
58+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts
59+
^^^^^
60+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts
61+
^
62+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts
63+
^
64+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts
65+
^^^
66+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts
67+
^
68+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts
69+
^
70+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts
71+
^^^^^^^^^^^^^^^
72+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts
73+
^
74+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts
75+
^
76+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts
77+
^^^^^^
78+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts
79+
^
80+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts
81+
^
82+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts
83+
^^
84+
source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts
85+
>
86+
^
87+
source.ts
88+
>
89+
^
90+
source.ts

tests/cases/resolutionMode.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/// <reference types="pkg" resolution-mode="require" />
2+
/// <reference types="pkg" resolution-mode="import" />
3+

0 commit comments

Comments
 (0)