fix54092: return replacement ranges for completions on unclosed strings (#57839)

Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
This commit is contained in:
Isabel Duan
2024-03-20 13:41:48 -07:00
committed by GitHub
parent f70b068b3c
commit 4ecadc6c03
2 changed files with 80 additions and 2 deletions

View File

@@ -2322,8 +2322,13 @@ export function createTextSpanFromNode(node: Node, sourceFile?: SourceFile, endN
/** @internal */
export function createTextSpanFromStringLiteralLikeContent(node: StringLiteralLike) {
if (node.isUnterminated) return undefined;
return createTextSpanFromBounds(node.getStart() + 1, node.getEnd() - 1);
let replacementEnd = node.getEnd() - 1;
if (node.isUnterminated) {
// we return no replacement range only if unterminated string is empty
if (node.getStart() === replacementEnd) return undefined;
replacementEnd = node.getEnd();
}
return createTextSpanFromBounds(node.getStart() + 1, replacementEnd);
}
/** @internal */