Skip to content

Commit ec0561b

Browse files
committed
Use label details for obj literal method completions
1 parent f34a51a commit ec0561b

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/server/editorServices.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ namespace ts.server {
296296

297297
/*@internal*/
298298
export function convertUserPreferences(preferences: protocol.UserPreferences): UserPreferences {
299-
const { lazyConfiguredProjectsFromExternalProject, ...userPreferences } = preferences;
299+
const { lazyConfiguredProjectsFromExternalProject, includeCompletionsWithObjectLiteralMethodSnippets: true, ...userPreferences } = preferences;
300300
return userPreferences;
301301
}
302302

src/services/completions.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -699,6 +699,7 @@ namespace ts.Completions {
699699
let source = getSourceFromOrigin(origin);
700700
let sourceDisplay;
701701
let hasAction;
702+
let labelDetails;
702703

703704
const typeChecker = program.getTypeChecker();
704705
const insertQuestionDot = origin && originIsNullableMember(origin);
@@ -778,7 +779,7 @@ namespace ts.Completions {
778779
if (!entry) {
779780
return undefined;
780781
}
781-
({ insertText, isSnippet, importAdder, sourceDisplay } = entry);
782+
({ insertText, isSnippet, importAdder, labelDetails } = entry);
782783
source = CompletionSource.ObjectLiteralMethodSnippet;
783784
sortText = SortText.SortBelow(sortText);
784785
if (importAdder.hasFixes()) {
@@ -840,6 +841,7 @@ namespace ts.Completions {
840841
insertText,
841842
replacementSpan,
842843
sourceDisplay,
844+
labelDetails,
843845
isSnippet,
844846
isPackageJsonImport: originIsPackageJsonImport(origin) || undefined,
845847
isImportStatementCompletion: !!importCompletionNode || undefined,
@@ -1064,7 +1066,7 @@ namespace ts.Completions {
10641066
options: CompilerOptions,
10651067
preferences: UserPreferences,
10661068
formatContext: formatting.FormatContext | undefined,
1067-
): { insertText: string, isSnippet?: true, importAdder: codefix.ImportAdder, sourceDisplay: SymbolDisplayPart[] } | undefined {
1069+
): { insertText: string, isSnippet?: true, importAdder: codefix.ImportAdder, labelDetails: CompletionEntryLabelDetails } | undefined {
10681070
let isSnippet: true | undefined;
10691071
let insertText: string = name;
10701072

@@ -1101,16 +1103,22 @@ namespace ts.Completions {
11011103
insertText = printer.printSnippetList(ListFormat.CommaDelimited | ListFormat.AllowTrailingComma, factory.createNodeArray([method], /*hasTrailingComma*/ true), sourceFile);
11021104
}
11031105

1106+
const signaturePrinter = createPrinter({
1107+
removeComments: true,
1108+
module: options.module,
1109+
target: options.target,
1110+
omitTrailingSemicolon: true,
1111+
});
11041112
const methodSignature = factory.createMethodSignature(
11051113
method.modifiers,
1106-
method.name,
1114+
/*name*/ "",
11071115
method.questionToken,
11081116
method.typeParameters,
11091117
method.parameters,
11101118
method.type);
1111-
const sourceDisplay = nodeToDisplayParts(methodSignature, enclosingDeclaration);
1119+
const labelDetails = { detail: signaturePrinter.printNode(EmitHint.Unspecified, methodSignature, sourceFile) };
11121120

1113-
return { isSnippet, insertText, importAdder, sourceDisplay };
1121+
return { isSnippet, insertText, importAdder, labelDetails };
11141122

11151123
};
11161124

0 commit comments

Comments
 (0)