Skip to content

Commit fe5a809

Browse files
committed
support both label details and non-label details in object literal method snippets
1 parent 4864a3e commit fe5a809

File tree

4 files changed

+66
-0
lines changed

4 files changed

+66
-0
lines changed

src/services/completions.ts

+4
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,10 @@ namespace ts.Completions {
782782
if (origin && originIsObjectLiteralMethod(origin)) {
783783
let importAdder;
784784
({ insertText, isSnippet, importAdder, labelDetails } = origin);
785+
if (!preferences.includeCompletionsWithLabelDetails) {
786+
name = name + labelDetails.detail;
787+
labelDetails = undefined;
788+
}
785789
source = CompletionSource.ObjectLiteralMethodSnippet;
786790
sortText = SortText.SortBelow(sortText);
787791
if (importAdder.hasFixes()) {

tests/cases/fourslash/completionsObjectLiteralMethod1.ts

+43
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ verify.completions({
3838
includeCompletionsWithInsertText: true,
3939
includeCompletionsWithSnippetText: false,
4040
includeCompletionsWithObjectLiteralMethodSnippets: true,
41+
includeCompletionsWithLabelDetails: true,
4142
},
4243
includes: [
4344
{
@@ -51,6 +52,9 @@ verify.completions({
5152
completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar")),
5253
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
5354
insertText: "bar(x: number): void {\n},",
55+
labelDetails: {
56+
detail: "(x: number): void",
57+
},
5458
},
5559
],
5660
});
@@ -60,6 +64,7 @@ verify.completions({
6064
includeCompletionsWithInsertText: true,
6165
includeCompletionsWithSnippetText: false,
6266
includeCompletionsWithObjectLiteralMethodSnippets: true,
67+
includeCompletionsWithLabelDetails: true,
6368
},
6469
includes: [
6570
{
@@ -73,6 +78,9 @@ verify.completions({
7378
completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar")),
7479
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
7580
insertText: "bar(x: number): void {\n},",
81+
labelDetails: {
82+
detail: "(x: number): void",
83+
},
7684
},
7785
{
7886
name: "foo",
@@ -85,6 +93,9 @@ verify.completions({
8593
completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "foo")),
8694
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
8795
insertText: "foo(x: string): string {\n},",
96+
labelDetails: {
97+
detail: "(x: string): string",
98+
},
8899
},
89100
],
90101
});
@@ -110,6 +121,7 @@ verify.completions({
110121
includeCompletionsWithInsertText: true,
111122
includeCompletionsWithSnippetText: false,
112123
includeCompletionsWithObjectLiteralMethodSnippets: true,
124+
includeCompletionsWithLabelDetails: true,
113125
},
114126
includes: [
115127
{
@@ -123,6 +135,9 @@ verify.completions({
123135
completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "\"space bar\"")),
124136
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
125137
insertText: "\"space bar\"(): string {\n},",
138+
labelDetails: {
139+
detail: "(): string",
140+
},
126141
},
127142
],
128143
});
@@ -132,6 +147,7 @@ verify.completions({
132147
includeCompletionsWithInsertText: true,
133148
includeCompletionsWithSnippetText: true,
134149
includeCompletionsWithObjectLiteralMethodSnippets: true,
150+
includeCompletionsWithLabelDetails: true,
135151
},
136152
includes: [
137153
{
@@ -146,6 +162,33 @@ verify.completions({
146162
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
147163
isSnippet: true,
148164
insertText: "bar(x: number): void {\n $0\n},",
165+
labelDetails: {
166+
detail: "(x: number): void",
167+
},
168+
},
169+
],
170+
});
171+
verify.completions({
172+
marker: "a",
173+
preferences: {
174+
includeCompletionsWithInsertText: true,
175+
includeCompletionsWithSnippetText: true,
176+
includeCompletionsWithObjectLiteralMethodSnippets: true,
177+
includeCompletionsWithLabelDetails: false,
178+
},
179+
includes: [
180+
{
181+
name: "bar",
182+
sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar"),
183+
insertText: undefined,
184+
},
185+
{
186+
name: "bar(x: number): void",
187+
sortText: completion.SortText.SortBelow(
188+
completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar")),
189+
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
190+
isSnippet: true,
191+
insertText: "bar(x: number): void {\n $0\n},",
149192
},
150193
],
151194
});

tests/cases/fourslash/completionsObjectLiteralMethod2.ts

+5
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ verify.completions({
2424
includeCompletionsWithInsertText: true,
2525
includeCompletionsWithSnippetText: false,
2626
includeCompletionsWithObjectLiteralMethodSnippets: true,
27+
includeCompletionsWithLabelDetails: true,
2728
},
2829
includes: [
2930
{
@@ -38,6 +39,9 @@ verify.completions({
3839
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
3940
insertText: "foo(f: IFoo): void {\n},",
4041
hasAction: true,
42+
labelDetails: {
43+
detail: "(f: IFoo): void",
44+
},
4145
},
4246
],
4347
});
@@ -47,6 +51,7 @@ verify.applyCodeActionFromCompletion("a", {
4751
includeCompletionsWithInsertText: true,
4852
includeCompletionsWithSnippetText: false,
4953
includeCompletionsWithObjectLiteralMethodSnippets: true,
54+
includeCompletionsWithLabelDetails: true,
5055
},
5156
name: "foo",
5257
source: completion.CompletionSource.ObjectLiteralMethodSnippet,

tests/cases/fourslash/completionsObjectLiteralMethod3.ts

+14
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ verify.completions({
3939
includeCompletionsWithInsertText: true,
4040
includeCompletionsWithSnippetText: false,
4141
includeCompletionsWithObjectLiteralMethodSnippets: true,
42+
includeCompletionsWithLabelDetails: true,
4243
},
4344
includes: [
4445
{
@@ -52,6 +53,9 @@ verify.completions({
5253
completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "M")),
5354
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
5455
insertText: "M(x: number): void {\n},",
56+
labelDetails: {
57+
detail: "(x: number): void",
58+
},
5559
},
5660
],
5761
});
@@ -93,6 +97,7 @@ verify.completions({
9397
includeCompletionsWithInsertText: true,
9498
includeCompletionsWithSnippetText: false,
9599
includeCompletionsWithObjectLiteralMethodSnippets: true,
100+
includeCompletionsWithLabelDetails: true,
96101
},
97102
includes: [
98103
{
@@ -106,6 +111,9 @@ verify.completions({
106111
completion.SortText.ObjectLiteralProperty(completion.SortText.OptionalMember, "M")),
107112
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
108113
insertText: "M(x: number): void {\n},",
114+
labelDetails: {
115+
detail: "(x: number): void",
116+
},
109117
},
110118
{
111119
name: "N",
@@ -118,6 +126,9 @@ verify.completions({
118126
completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "N")),
119127
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
120128
insertText: "N(x: string): void {\n},",
129+
labelDetails: {
130+
detail: "(x: string): void",
131+
},
121132
},
122133
{
123134
name: "O",
@@ -130,6 +141,9 @@ verify.completions({
130141
completion.SortText.ObjectLiteralProperty(completion.SortText.OptionalMember, "O")),
131142
source: completion.CompletionSource.ObjectLiteralMethodSnippet,
132143
insertText: "O(): void {\n},",
144+
labelDetails: {
145+
detail: "(): void",
146+
},
133147
},
134148
],
135149
});

0 commit comments

Comments
 (0)