Skip to content

Commit 0aea7e0

Browse files
committed
Fix the function expression overload
Fixes #663
1 parent 06edc77 commit 0aea7e0

File tree

5 files changed

+121
-3
lines changed

5 files changed

+121
-3
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ repository:
661661
'2': { name: storage.type.function.ts }
662662
'3': { name: keyword.generator.asterisk.ts }
663663
'4': { name: meta.definition.function.ts entity.name.function.ts }
664-
end: (?<=\})
664+
end: (?=;)|(?<=\})
665665
patterns:
666666
- include: '#function-name'
667667
- include: '#single-line-comment-consuming-line-ending'

TypeScript.tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2093,7 +2093,7 @@
20932093
</dict>
20942094
</dict>
20952095
<key>end</key>
2096-
<string>(?&lt;=\})</string>
2096+
<string>(?=;)|(?&lt;=\})</string>
20972097
<key>patterns</key>
20982098
<array>
20992099
<dict>

TypeScriptReact.tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2097,7 +2097,7 @@
20972097
</dict>
20982098
</dict>
20992099
<key>end</key>
2100-
<string>(?&lt;=\})</string>
2100+
<string>(?=;)|(?&lt;=\})</string>
21012101
<key>patterns</key>
21022102
<array>
21032103
<dict>

tests/baselines/Issue663.baseline.txt

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
original file
2+
-----------------------------------
3+
export default function foo(): void;
4+
export default function foo(bar: string): void;
5+
export default function foo(bar?: string): void
6+
{ }
7+
-----------------------------------
8+
9+
Grammar: TypeScript.tmLanguage
10+
-----------------------------------
11+
>export default function foo(): void;
12+
^^^^^^
13+
source.ts meta.export.default.ts keyword.control.export.ts
14+
^
15+
source.ts meta.export.default.ts
16+
^^^^^^^
17+
source.ts meta.export.default.ts keyword.control.default.ts
18+
^
19+
source.ts meta.export.default.ts
20+
^^^^^^^^
21+
source.ts meta.export.default.ts meta.function.expression.ts storage.type.function.ts
22+
^
23+
source.ts meta.export.default.ts meta.function.expression.ts
24+
^^^
25+
source.ts meta.export.default.ts meta.function.expression.ts meta.definition.function.ts entity.name.function.ts
26+
^
27+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
28+
^
29+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts
30+
^
31+
source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts keyword.operator.type.annotation.ts
32+
^
33+
source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts
34+
^^^^
35+
source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts support.type.primitive.ts
36+
^
37+
source.ts punctuation.terminator.statement.ts
38+
>export default function foo(bar: string): void;
39+
^^^^^^
40+
source.ts meta.export.default.ts keyword.control.export.ts
41+
^
42+
source.ts meta.export.default.ts
43+
^^^^^^^
44+
source.ts meta.export.default.ts keyword.control.default.ts
45+
^
46+
source.ts meta.export.default.ts
47+
^^^^^^^^
48+
source.ts meta.export.default.ts meta.function.expression.ts storage.type.function.ts
49+
^
50+
source.ts meta.export.default.ts meta.function.expression.ts
51+
^^^
52+
source.ts meta.export.default.ts meta.function.expression.ts meta.definition.function.ts entity.name.function.ts
53+
^
54+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
55+
^^^
56+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts
57+
^
58+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
59+
^
60+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts
61+
^^^^^^
62+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
63+
^
64+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts
65+
^
66+
source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts keyword.operator.type.annotation.ts
67+
^
68+
source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts
69+
^^^^
70+
source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts support.type.primitive.ts
71+
^
72+
source.ts punctuation.terminator.statement.ts
73+
>export default function foo(bar?: string): void
74+
^^^^^^
75+
source.ts meta.export.default.ts keyword.control.export.ts
76+
^
77+
source.ts meta.export.default.ts
78+
^^^^^^^
79+
source.ts meta.export.default.ts keyword.control.default.ts
80+
^
81+
source.ts meta.export.default.ts
82+
^^^^^^^^
83+
source.ts meta.export.default.ts meta.function.expression.ts storage.type.function.ts
84+
^
85+
source.ts meta.export.default.ts meta.function.expression.ts
86+
^^^
87+
source.ts meta.export.default.ts meta.function.expression.ts meta.definition.function.ts entity.name.function.ts
88+
^
89+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
90+
^^^
91+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts
92+
^
93+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts keyword.operator.optional.ts
94+
^
95+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
96+
^
97+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts
98+
^^^^^^
99+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
100+
^
101+
source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts
102+
^
103+
source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts keyword.operator.type.annotation.ts
104+
^
105+
source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts
106+
^^^^
107+
source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts support.type.primitive.ts
108+
>{ }
109+
^
110+
source.ts meta.export.default.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts
111+
^
112+
source.ts meta.export.default.ts meta.function.expression.ts meta.block.ts
113+
^
114+
source.ts meta.export.default.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts

tests/cases/Issue663.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export default function foo(): void;
2+
export default function foo(bar: string): void;
3+
export default function foo(bar?: string): void
4+
{ }

0 commit comments

Comments
 (0)