Skip to content

Commit 196180a

Browse files
gabrittotypescript-bot
authored andcommitted
Cherry-pick PR microsoft#46737 into release-4.5
Component commits: 74cd7a5 fix extra newline 8df5bef Merge branch 'main' into gabritto/issue46609 67d631c fix test
1 parent 2857273 commit 196180a

13 files changed

+103
-50
lines changed

src/services/completions.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -851,7 +851,7 @@ namespace ts.Completions {
851851
removeComments: true,
852852
module: options.module,
853853
target: options.target,
854-
omitTrailingSemicolon: true,
854+
omitTrailingSemicolon: false,
855855
newLine: getNewLineKind(getNewLineCharacter(options, maybeBind(host, host.getNewLine))),
856856
});
857857
const importAdder = codefix.createImportAdder(sourceFile, program, preferences, host);
@@ -923,7 +923,10 @@ namespace ts.Completions {
923923
isAbstract);
924924

925925
if (completionNodes.length) {
926-
insertText = printer.printSnippetList(ListFormat.MultiLine, factory.createNodeArray(completionNodes), sourceFile);
926+
insertText = printer.printSnippetList(
927+
ListFormat.MultiLine | ListFormat.NoTrailingNewLine,
928+
factory.createNodeArray(completionNodes),
929+
sourceFile);
927930
}
928931

929932
return { insertText, isSnippet, importAdder };

tests/cases/fourslash/completionsOverridingMethod.ts

+13-21
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,7 @@ verify.completions({
129129
pos: 0,
130130
end: 0,
131131
},
132-
insertText:
133-
"foo(param1: string, param2: boolean): Promise<void> {\n}\n",
132+
insertText: "foo(param1: string, param2: boolean): Promise<void> {\n}",
134133
}
135134
],
136135
});
@@ -152,8 +151,7 @@ verify.completions({
152151
pos: 0,
153152
end: 0,
154153
},
155-
insertText:
156-
"foo(a: string, b: string): string {\n}\n",
154+
insertText: "foo(a: string, b: string): string {\n}",
157155
}
158156
],
159157
});
@@ -175,8 +173,7 @@ verify.completions({
175173
pos: 0,
176174
end: 0,
177175
},
178-
insertText:
179-
"foo(a: string): string {\n}\n",
176+
insertText: "foo(a: string): string {\n}",
180177
}
181178
],
182179
});
@@ -198,8 +195,7 @@ verify.completions({
198195
pos: 0,
199196
end: 0,
200197
},
201-
insertText:
202-
"foo(a: string): string {\n}\n",
198+
insertText: "foo(a: string): string {\n}",
203199
}
204200
],
205201
});
@@ -221,8 +217,7 @@ verify.completions({
221217
pos: 0,
222218
end: 0,
223219
},
224-
insertText:
225-
"foo(a: string): string {\n}\n",
220+
insertText: "foo(a: string): string {\n}",
226221
}
227222
],
228223
});
@@ -244,8 +239,7 @@ verify.completions({
244239
pos: 0,
245240
end: 0,
246241
},
247-
insertText:
248-
"foo(a: string): string {\n}\n",
242+
insertText: "foo(a: string): string {\n}",
249243
}
250244
],
251245
});
@@ -268,9 +262,10 @@ verify.completions({
268262
end: 0,
269263
},
270264
insertText:
271-
"foo(a: string): string;\n\
272-
foo(a: undefined, b: number): string;\n\
273-
foo(a: any, b?: any): string {\n}\n",
265+
`foo(a: string): string;
266+
foo(a: undefined, b: number): string;
267+
foo(a: any, b?: any): string {
268+
}`,
274269
}
275270
],
276271
});
@@ -302,8 +297,7 @@ verify.completions({
302297
pos: 0,
303298
end: 0,
304299
},
305-
insertText:
306-
"met(n: number): number {\n}\n",
300+
insertText: "met(n: number): number {\n}",
307301
}
308302
],
309303
});
@@ -325,8 +319,7 @@ verify.completions({
325319
pos: 0,
326320
end: 0,
327321
},
328-
insertText:
329-
"met<T>(t: T): T {\n}\n",
322+
insertText: "met<T>(t: T): T {\n}",
330323
},
331324
{
332325
name: "metcons",
@@ -336,8 +329,7 @@ verify.completions({
336329
pos: 0,
337330
end: 0,
338331
},
339-
insertText:
340-
"metcons<T extends string | number>(t: T): T {\n}\n",
332+
insertText: "metcons<T extends string | number>(t: T): T {\n}",
341333
}
342334
],
343335
});

tests/cases/fourslash/completionsOverridingMethod1.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ verify.completions({
3030
pos: 0,
3131
end: 0,
3232
},
33-
insertText:
34-
"override foo(a: string): void {\n}\n",
33+
insertText: "override foo(a: string): void {\n}",
3534
}
3635
],
3736
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
// @Filename: a.ts
4+
// @newline: LF
5+
// Case: formatting: semicolons
6+
////interface Base {
7+
//// a: string;
8+
//// b(a: string): void;
9+
//// c(a: string): string;
10+
//// c(a: number): number;
11+
////}
12+
////class Sub implements Base {
13+
//// /*a*/
14+
////}
15+
16+
17+
verify.completions({
18+
marker: "a",
19+
isNewIdentifierLocation: true,
20+
preferences: {
21+
includeCompletionsWithInsertText: true,
22+
includeCompletionsWithSnippetText: false,
23+
includeCompletionsWithClassMemberSnippets: true,
24+
},
25+
includes: [
26+
{
27+
name: "a",
28+
sortText: completion.SortText.LocationPriority,
29+
replacementSpan: {
30+
fileName: "",
31+
pos: 0,
32+
end: 0,
33+
},
34+
insertText: "a: string;",
35+
},
36+
{
37+
name: "b",
38+
sortText: completion.SortText.LocationPriority,
39+
replacementSpan: {
40+
fileName: "",
41+
pos: 0,
42+
end: 0,
43+
},
44+
insertText:
45+
`b(a: string): void {
46+
}`,
47+
},
48+
{
49+
name: "c",
50+
sortText: completion.SortText.LocationPriority,
51+
replacementSpan: {
52+
fileName: "",
53+
pos: 0,
54+
end: 0,
55+
},
56+
insertText:
57+
`c(a: string): string;
58+
c(a: number): number;
59+
c(a: any): string | number {
60+
}`,
61+
},
62+
],
63+
});

tests/cases/fourslash/completionsOverridingMethod2.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ verify.completions({
2929
end: 0,
3030
},
3131
isSnippet: true,
32-
insertText:
33-
"\"\\$usd\"(a: number): number {\n $0\n}\n",
32+
insertText: "\"\\$usd\"(a: number): number {\n $0\n}",
3433
}
3534
],
3635
});

tests/cases/fourslash/completionsOverridingMethod3.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ verify.completions({
2929
pos: 0,
3030
end: 0,
3131
},
32-
insertText:
33-
"boo(): string;\n",
32+
insertText: "boo(): string;",
3433
}
3534
],
3635
});

tests/cases/fourslash/completionsOverridingMethod4.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ verify.completions({
4848
pos: 0,
4949
end: 0,
5050
},
51-
insertText: "protected hint(): string {\n}\n",
51+
insertText: "protected hint(): string {\n}",
5252
},
5353
{
5454
name: "refuse",
@@ -58,7 +58,7 @@ verify.completions({
5858
pos: 0,
5959
end: 0,
6060
},
61-
insertText: "public refuse(): string {\n}\n",
61+
insertText: "public refuse(): string {\n}",
6262
}
6363
],
6464
});

tests/cases/fourslash/completionsOverridingMethod5.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ verify.completions({
3434
pos: 0,
3535
end: 0,
3636
},
37-
insertText: "met(n: string): void {\n}\n",
37+
insertText: "met(n: string): void {\n}",
3838
},
3939
{
4040
name: "met2",
@@ -44,7 +44,7 @@ verify.completions({
4444
pos: 0,
4545
end: 0,
4646
},
47-
insertText: "met2(n: number): void {\n}\n",
47+
insertText: "met2(n: number): void {\n}",
4848
}
4949
],
5050
});
@@ -66,7 +66,7 @@ verify.completions({
6666
pos: 0,
6767
end: 0,
6868
},
69-
insertText: "met(n: string): void;\n",
69+
insertText: "met(n: string): void;",
7070
},
7171
{
7272
name: "met2",
@@ -76,7 +76,7 @@ verify.completions({
7676
pos: 0,
7777
end: 0,
7878
},
79-
insertText: "met2(n: number): void;\n",
79+
insertText: "met2(n: number): void;",
8080
}
8181
],
8282
});
@@ -98,7 +98,7 @@ verify.completions({
9898
pos: 0,
9999
end: 0,
100100
},
101-
insertText: "met(n: string): void;\n",
101+
insertText: "met(n: string): void;",
102102
},
103103
{
104104
name: "met2",
@@ -108,7 +108,7 @@ verify.completions({
108108
pos: 0,
109109
end: 0,
110110
},
111-
insertText: "met2(n: number): void;\n",
111+
insertText: "met2(n: number): void;",
112112
}
113113
],
114114
});

tests/cases/fourslash/completionsOverridingMethod6.ts

+6-5
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ verify.completions({
4343
pos: 0,
4444
end: 0,
4545
},
46-
insertText: "method(): number {\n}\n",
46+
insertText: "method(): number {\n}",
4747
},
4848
],
4949
});
@@ -65,7 +65,7 @@ verify.completions({
6565
pos: 0,
6666
end: 0,
6767
},
68-
insertText: "method(): number;\n",
68+
insertText: "method(): number;",
6969
},
7070
],
7171
});
@@ -88,9 +88,10 @@ verify.completions({
8888
end: 0,
8989
},
9090
insertText:
91-
"fun(a: number): number;\n\
92-
public fun(a: undefined, b: string): number;\n\
93-
public fun(a: any, b?: any): number {\n}\n",
91+
`fun(a: number): number;
92+
public fun(a: undefined, b: string): number;
93+
public fun(a: any, b?: any): number {
94+
}`,
9495
},
9596
],
9697
});

tests/cases/fourslash/completionsOverridingMethod7.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ verify.completions({
3131
},
3232
insertText:
3333
`M<T>(t: T): void;
34-
abstract M<T>(t: T, x: number): void;
35-
`,
34+
abstract M<T>(t: T, x: number): void;`,
3635
},
3736
],
3837
});

tests/cases/fourslash/completionsOverridingMethod8.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ verify.completions({
3232
pos: 0,
3333
end: 0,
3434
},
35-
insertText: "method(p: I): void {\n}\n",
35+
insertText: "method(p: I): void {\n}",
3636
hasAction: true,
3737
source: completion.CompletionSource.ClassMemberSnippet,
3838
}],

tests/cases/fourslash/completionsOverridingMethod9.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ verify.completions({
2828
pos: 0,
2929
end: 0,
3030
},
31-
insertText: "a?: number;\n"
31+
insertText: "a?: number;"
3232
},
3333
{
3434
name: "b",
@@ -38,7 +38,7 @@ verify.completions({
3838
pos: 0,
3939
end: 0,
4040
},
41-
insertText: "b(x: number): void {\n}\n"
41+
insertText: "b(x: number): void {\n}"
4242
},
4343
],
4444
});

tests/cases/fourslash/completionsOverridingProperties.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
// Case: Properties
66
////class Base {
77
//// protected foo: string = "bar";
8-
////
98
////}
109
////
1110
////class Sub extends Base {
@@ -32,8 +31,7 @@ verify.completions({
3231
pos: 0,
3332
end: 0,
3433
},
35-
insertText:
36-
"protected foo: string;\n",
34+
insertText: "protected foo: string;",
3735
}
3836
],
3937
});

0 commit comments

Comments
 (0)