From ab8ed4b717bad6c2a8e6cfb74cb667d98a31de88 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Mon, 12 Jun 2023 12:11:42 -0700 Subject: [PATCH] Fallback to use insert text when label is falsy (#184944) For #184812 --- .../src/languageFeatures/completions.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/extensions/typescript-language-features/src/languageFeatures/completions.ts b/extensions/typescript-language-features/src/languageFeatures/completions.ts index 8b5100f876eff..b97c9b8b3fb52 100644 --- a/extensions/typescript-language-features/src/languageFeatures/completions.ts +++ b/extensions/typescript-language-features/src/languageFeatures/completions.ts @@ -58,7 +58,8 @@ class MyCompletionItem extends vscode.CompletionItem { public readonly metadata: any | undefined, client: ITypeScriptServiceClient, ) { - super(tsEntry.name, MyCompletionItem.convertKind(tsEntry.kind)); + const label = tsEntry.name || (tsEntry.insertText ?? ''); + super(label, MyCompletionItem.convertKind(tsEntry.kind)); if (tsEntry.source && tsEntry.hasAction && client.apiVersion.lt(API.v490)) { // De-prioritze auto-imports @@ -72,18 +73,18 @@ class MyCompletionItem extends vscode.CompletionItem { // Render "fancy" when source is a workspace path const qualifierCandidate = vscode.workspace.asRelativePath(tsEntry.source); if (qualifierCandidate !== tsEntry.source) { - this.label = { label: tsEntry.name, description: qualifierCandidate }; + this.label = { label, description: qualifierCandidate }; } } const { sourceDisplay, isSnippet } = tsEntry; if (sourceDisplay) { - this.label = { label: tsEntry.name, description: Previewer.asPlainTextWithLinks(sourceDisplay, client) }; + this.label = { label, description: Previewer.asPlainTextWithLinks(sourceDisplay, client) }; } if (tsEntry.labelDetails) { - this.label = { label: tsEntry.name, ...tsEntry.labelDetails }; + this.label = { label, ...tsEntry.labelDetails }; } this.preselect = tsEntry.isRecommended;