diff --git a/extensions/typescript-language-features/src/features/completions.ts b/extensions/typescript-language-features/src/features/completions.ts index 70f61d61a13..5d9a26b0f72 100644 --- a/extensions/typescript-language-features/src/features/completions.ts +++ b/extensions/typescript-language-features/src/features/completions.ts @@ -64,9 +64,7 @@ class MyCompletionItem extends vscode.CompletionItem { this.sortText = tsEntry.sortText; } - if (tsEntry.isRecommended) { - this.preselect = true; - } + this.preselect = tsEntry.isRecommended; this.position = position; this.useCodeSnippet = completionContext.useCodeSnippetsOnMethodSuggest && (this.kind === vscode.CompletionItemKind.Function || this.kind === vscode.CompletionItemKind.Method); @@ -103,8 +101,8 @@ class MyCompletionItem extends vscode.CompletionItem { } if (tsEntry.kindModifiers) { - const kindModifiers = new Set(tsEntry.kindModifiers.split(/,|\s+/g)); - if (kindModifiers.has(PConst.KindModifiers.optional)) { + const kindModifiers = tsEntry.kindModifiers.split(/,|\s+/g); + if (kindModifiers.includes(PConst.KindModifiers.optional)) { if (!this.insertText) { this.insertText = this.label; } @@ -115,13 +113,13 @@ class MyCompletionItem extends vscode.CompletionItem { this.label += '?'; } - if (kindModifiers.has(PConst.KindModifiers.color)) { + if (kindModifiers.includes(PConst.KindModifiers.color)) { this.kind = vscode.CompletionItemKind.Color; } if (tsEntry.kind === PConst.Kind.script) { for (const extModifier of PConst.KindModifiers.fileExtensionKindModifiers) { - if (kindModifiers.has(extModifier)) { + if (kindModifiers.includes(extModifier)) { if (tsEntry.name.toLowerCase().endsWith(extModifier)) { this.detail = tsEntry.name; } else { @@ -132,6 +130,7 @@ class MyCompletionItem extends vscode.CompletionItem { } } } + this.resolveRange(); } @@ -155,6 +154,7 @@ class MyCompletionItem extends vscode.CompletionItem { if (insertText?.startsWith('this.')) { return undefined; } + // Handle the case: // ``` // const xyz = { 'ab c': 1 };