Skip to content

Commit 7a682de

Browse files
committed
Handle return type of function declaration on new line
Fixes #677
1 parent 775080a commit 7a682de

11 files changed

+416
-275
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ repository:
648648
'4': { name: storage.type.function.ts }
649649
'5': { name: keyword.generator.asterisk.ts }
650650
'6': { name: meta.definition.function.ts entity.name.function.ts }
651-
end: (?=$|^|;)|(?<=\})
651+
end: (?={{endOfStatement}})|(?<=\})
652652
patterns:
653653
- include: '#function-name'
654654
- include: '#function-body'

TypeScript.tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2050,7 +2050,7 @@
20502050
</dict>
20512051
</dict>
20522052
<key>end</key>
2053-
<string>(?=$|^|;)|(?&lt;=\})</string>
2053+
<string>(?=;|(?:^\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\b))|(?&lt;=\})</string>
20542054
<key>patterns</key>
20552055
<array>
20562056
<dict>

TypeScriptReact.tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2054,7 +2054,7 @@
20542054
</dict>
20552055
</dict>
20562056
<key>end</key>
2057-
<string>(?=$|^|;)|(?&lt;=\})</string>
2057+
<string>(?=;|(?:^\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\b))|(?&lt;=\})</string>
20582058
<key>patterns</key>
20592059
<array>
20602060
<dict>

tests/baselines/Issue193.baseline.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ Grammar: TypeScript.tmLanguage
3737
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
3838
>{
3939
^
40-
source.ts meta.block.ts punctuation.definition.block.ts
40+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
4141
>}
4242
^
43-
source.ts meta.block.ts punctuation.definition.block.ts
43+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
4444
>
4545
^
4646
source.ts
@@ -65,10 +65,10 @@ Grammar: TypeScript.tmLanguage
6565
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
6666
>{
6767
^
68-
source.ts meta.block.ts punctuation.definition.block.ts
68+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
6969
>}
7070
^
71-
source.ts meta.block.ts punctuation.definition.block.ts
71+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
7272
>
7373
^
7474
source.ts

tests/baselines/Issue346.baseline.txt

Lines changed: 177 additions & 177 deletions
Large diffs are not rendered by default.

tests/baselines/Issue346.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ Grammar: TypeScript.tmLanguage
4545
>
4646
> for (let i = 0; i < b.length; i++) b[i] = Math.sin(TAU440 * t++/s * Math.sin(t++/s*.5))
4747
^
48-
[11, 66]: source.ts meta.block.ts meta.block.ts keyword.operator.arithmetic.ts
48+
[11, 66]: source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts
4949
^
50-
[11, 83]: source.ts meta.block.ts meta.block.ts keyword.operator.arithmetic.ts
50+
[11, 83]: source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts
5151
>
5252
> postMessage(b)
5353
> }

tests/baselines/Issue384.baseline.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ Grammar: TypeScript.tmLanguage
5353
source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts
5454
>
5555
^
56-
source.ts
56+
source.ts meta.function.ts
5757
>export function X(): void
5858
^^^^^^
5959
source.ts meta.function.ts keyword.control.export.ts

tests/baselines/Issue405.baseline.txt

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -27,53 +27,53 @@ Grammar: TypeScript.tmLanguage
2727
source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts
2828
> (a: string)
2929
^^
30-
source.ts meta.arrow.ts
30+
source.ts meta.function.ts
3131
^
32-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
32+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
3333
^
34-
source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts
34+
source.ts meta.function.ts meta.parameters.ts variable.parameter.ts
3535
^
36-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
36+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
3737
^
38-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts
38+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts
3939
^^^^^^
40-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
40+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
4141
^
42-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts
42+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
4343
>{
4444
^
45-
source.ts meta.block.ts punctuation.definition.block.ts
45+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
4646
> var r = true;
4747
^^
48-
source.ts meta.block.ts
48+
source.ts meta.function.ts meta.block.ts
4949
^^^
50-
source.ts meta.block.ts meta.var.expr.ts storage.type.ts
50+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts
5151
^
52-
source.ts meta.block.ts meta.var.expr.ts
52+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts
5353
^
54-
source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
54+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
5555
^
56-
source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts
56+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts
5757
^
58-
source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts
58+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts
5959
^
60-
source.ts meta.block.ts meta.var.expr.ts
60+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts
6161
^^^^
62-
source.ts meta.block.ts meta.var.expr.ts constant.language.boolean.true.ts
62+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.language.boolean.true.ts
6363
^
64-
source.ts meta.block.ts punctuation.terminator.statement.ts
64+
source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts
6565
> return true
6666
^^
67-
source.ts meta.block.ts
67+
source.ts meta.function.ts meta.block.ts
6868
^^^^^^
69-
source.ts meta.block.ts keyword.control.flow.ts
69+
source.ts meta.function.ts meta.block.ts keyword.control.flow.ts
7070
^
71-
source.ts meta.block.ts
71+
source.ts meta.function.ts meta.block.ts
7272
^^^^
73-
source.ts meta.block.ts constant.language.boolean.true.ts
73+
source.ts meta.function.ts meta.block.ts constant.language.boolean.true.ts
7474
>}
7575
^
76-
source.ts meta.block.ts punctuation.definition.block.ts
76+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
7777
>
7878
^
7979
source.ts
@@ -86,59 +86,59 @@ Grammar: TypeScript.tmLanguage
8686
source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts
8787
> (a: string): boolean
8888
^^
89-
source.ts meta.arrow.ts
89+
source.ts meta.function.ts
9090
^
91-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
91+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
9292
^
93-
source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts
93+
source.ts meta.function.ts meta.parameters.ts variable.parameter.ts
9494
^
95-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
95+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
9696
^
97-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts
97+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts
9898
^^^^^^
99-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
99+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
100100
^
101-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts
101+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
102102
^
103-
source.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts
103+
source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts
104104
^
105-
source.ts meta.arrow.ts meta.return.type.arrow.ts
105+
source.ts meta.function.ts meta.return.type.ts
106106
^^^^^^^
107-
source.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts
107+
source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts
108108
>{
109109
^
110-
source.ts meta.block.ts punctuation.definition.block.ts
110+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
111111
> var r = true;
112112
^^
113-
source.ts meta.block.ts
113+
source.ts meta.function.ts meta.block.ts
114114
^^^
115-
source.ts meta.block.ts meta.var.expr.ts storage.type.ts
115+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts
116116
^
117-
source.ts meta.block.ts meta.var.expr.ts
117+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts
118118
^
119-
source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
119+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
120120
^
121-
source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts
121+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts
122122
^
123-
source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts
123+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts
124124
^
125-
source.ts meta.block.ts meta.var.expr.ts
125+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts
126126
^^^^
127-
source.ts meta.block.ts meta.var.expr.ts constant.language.boolean.true.ts
127+
source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.language.boolean.true.ts
128128
^
129-
source.ts meta.block.ts punctuation.terminator.statement.ts
129+
source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts
130130
> return true
131131
^^
132-
source.ts meta.block.ts
132+
source.ts meta.function.ts meta.block.ts
133133
^^^^^^
134-
source.ts meta.block.ts keyword.control.flow.ts
134+
source.ts meta.function.ts meta.block.ts keyword.control.flow.ts
135135
^
136-
source.ts meta.block.ts
136+
source.ts meta.function.ts meta.block.ts
137137
^^^^
138-
source.ts meta.block.ts constant.language.boolean.true.ts
138+
source.ts meta.function.ts meta.block.ts constant.language.boolean.true.ts
139139
>}
140140
^
141-
source.ts meta.block.ts punctuation.definition.block.ts
141+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
142142
>
143143
^
144144
source.ts

tests/baselines/Issue428.baseline.txt

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -28,30 +28,30 @@ Grammar: TypeScript.tmLanguage
2828
source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts
2929
> (a: number): string
3030
^^
31-
source.ts meta.arrow.ts
31+
source.ts meta.function.ts
3232
^
33-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
33+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
3434
^
35-
source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts
35+
source.ts meta.function.ts meta.parameters.ts variable.parameter.ts
3636
^
37-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
37+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
3838
^
39-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts
39+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts
4040
^^^^^^
41-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
41+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
4242
^
43-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts
43+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
4444
^
45-
source.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts
45+
source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts
4646
^
47-
source.ts meta.arrow.ts meta.return.type.arrow.ts
47+
source.ts meta.function.ts meta.return.type.ts
4848
^^^^^^
49-
source.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts
50-
^^
51-
source.ts meta.arrow.ts meta.return.type.arrow.ts
49+
source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts
50+
^
51+
source.ts meta.function.ts meta.return.type.ts
5252
>
5353
^
54-
source.ts meta.arrow.ts meta.return.type.arrow.ts
54+
source.ts meta.function.ts
5555
>export function funct
5656
^^^^^^
5757
source.ts meta.function.ts keyword.control.export.ts
@@ -65,33 +65,33 @@ Grammar: TypeScript.tmLanguage
6565
source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts
6666
> (a: number): number
6767
^^
68-
source.ts meta.arrow.ts
68+
source.ts meta.function.ts
6969
^
70-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
70+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
7171
^
72-
source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts
72+
source.ts meta.function.ts meta.parameters.ts variable.parameter.ts
7373
^
74-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
74+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
7575
^
76-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts
76+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts
7777
^^^^^^
78-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
78+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
7979
^
80-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts
80+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
8181
^
82-
source.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts
82+
source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts
8383
^
84-
source.ts meta.arrow.ts meta.return.type.arrow.ts
84+
source.ts meta.function.ts meta.return.type.ts
8585
^^^^^^
86-
source.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts
86+
source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts
8787
>
8888
^
89-
source.ts meta.arrow.ts meta.return.type.arrow.ts
89+
source.ts meta.function.ts
9090
>// this is implementation
9191
^^
92-
source.ts meta.arrow.ts meta.return.type.arrow.ts comment.line.double-slash.ts punctuation.definition.comment.ts
92+
source.ts meta.function.ts comment.line.double-slash.ts punctuation.definition.comment.ts
9393
^^^^^^^^^^^^^^^^^^^^^^^
94-
source.ts meta.arrow.ts meta.return.type.arrow.ts comment.line.double-slash.ts
94+
source.ts meta.function.ts comment.line.double-slash.ts
9595
>export function funct
9696
^^^^^^
9797
source.ts meta.function.ts keyword.control.export.ts
@@ -105,34 +105,34 @@ Grammar: TypeScript.tmLanguage
105105
source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts
106106
> (a: number): any {
107107
^^
108-
source.ts meta.arrow.ts
108+
source.ts meta.function.ts
109109
^
110-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
110+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
111111
^
112-
source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts
112+
source.ts meta.function.ts meta.parameters.ts variable.parameter.ts
113113
^
114-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
114+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
115115
^
116-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts
116+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts
117117
^^^^^^
118-
source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
118+
source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
119119
^
120-
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts
120+
source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
121121
^
122-
source.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts
122+
source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts
123123
^
124-
source.ts meta.arrow.ts meta.return.type.arrow.ts
124+
source.ts meta.function.ts meta.return.type.ts
125125
^^^
126-
source.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts
126+
source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts
127127
^
128-
source.ts meta.arrow.ts meta.return.type.arrow.ts
128+
source.ts meta.function.ts meta.return.type.ts
129129
^
130-
source.ts meta.block.ts punctuation.definition.block.ts
130+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
131131
>
132132
^^^
133-
source.ts meta.block.ts
133+
source.ts meta.function.ts meta.block.ts
134134
> }
135135
^^
136-
source.ts meta.block.ts
136+
source.ts meta.function.ts meta.block.ts
137137
^
138-
source.ts meta.block.ts punctuation.definition.block.ts
138+
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts

0 commit comments

Comments
 (0)