Fixed string completions that require escaping (#55118)

This commit is contained in:
Mateusz Burzyński
2023-09-22 00:05:34 +02:00
committed by GitHub
parent 5b7b011518
commit 56accb08a1
2 changed files with 32 additions and 1 deletions

View File

@@ -32,6 +32,7 @@ import {
endsWith,
ensureTrailingDirectorySeparator,
equateStringsCaseSensitive,
escapeString,
Extension,
fileExtensionIsOneOf,
filter,
@@ -63,6 +64,7 @@ import {
getSupportedExtensions,
getSupportedExtensionsWithJsonIfResolveJsonModule,
getTextOfJsxAttributeName,
getTextOfNode,
getTokenAtPosition,
hasIndexSignature,
hasProperty,
@@ -262,8 +264,13 @@ function convertStringLiteralCompletions(
return { isGlobalCompletion: false, isMemberCompletion: true, isNewIdentifierLocation: completion.hasIndexSignature, optionalReplacementSpan, entries };
}
case StringLiteralCompletionKind.Types: {
const quoteChar = contextToken.kind === SyntaxKind.NoSubstitutionTemplateLiteral
? CharacterCodes.backtick
: startsWith(getTextOfNode(contextToken), "'")
? CharacterCodes.singleQuote
: CharacterCodes.doubleQuote;
const entries = completion.types.map(type => ({
name: type.value,
name: escapeString(type.value, quoteChar),
kindModifiers: ScriptElementKindModifier.none,
kind: ScriptElementKind.string,
sortText: SortText.LocationPriority,