diff --git a/extensions/typescript-language-features/src/languageFeatures/completions.ts b/extensions/typescript-language-features/src/languageFeatures/completions.ts index e505e794279..b9030df380b 100644 --- a/extensions/typescript-language-features/src/languageFeatures/completions.ts +++ b/extensions/typescript-language-features/src/languageFeatures/completions.ts @@ -59,7 +59,8 @@ class MyCompletionItem extends vscode.CompletionItem { constructor( public readonly position: vscode.Position, public readonly document: vscode.TextDocument, - public readonly tsEntry: Proto.CompletionEntry, + // Intersection needed to avoid type error until TS 4.7. + public readonly tsEntry: Proto.CompletionEntry & { labelDetails?: { detail?: string; description?: string } }, private readonly completionContext: CompletionContext, public readonly metadata: any | undefined, client: ITypeScriptServiceClient, @@ -86,6 +87,10 @@ class MyCompletionItem extends vscode.CompletionItem { this.label = { label: tsEntry.name, description: Previewer.plainWithLinks(sourceDisplay, client) }; } + if (tsEntry.labelDetails) { + this.label = { label: tsEntry.name, ...tsEntry.labelDetails }; + } + this.preselect = tsEntry.isRecommended; this.position = position; this.useCodeSnippet = completionContext.useCodeSnippetsOnMethodSuggest && (this.kind === vscode.CompletionItemKind.Function || this.kind === vscode.CompletionItemKind.Method); diff --git a/extensions/typescript-language-features/src/languageFeatures/fileConfigurationManager.ts b/extensions/typescript-language-features/src/languageFeatures/fileConfigurationManager.ts index 8cf64bc8e97..61e70e7df27 100644 --- a/extensions/typescript-language-features/src/languageFeatures/fileConfigurationManager.ts +++ b/extensions/typescript-language-features/src/languageFeatures/fileConfigurationManager.ts @@ -189,6 +189,7 @@ export default class FileConfigurationManager extends Disposable { includeCompletionsWithClassMemberSnippets: config.get('suggest.classMemberSnippets.enabled', true), // @ts-expect-error until 4.7 includeCompletionsWithObjectLiteralMethodSnippets: config.get('suggest.objectLiteralMethodSnippets.enabled', true), + useLabelDetailsInCompletionEntries: true, allowIncompleteCompletions: true, displayPartsForJSDoc: true, ...getInlayHintsPreferences(config),