From 40302d715daade7a79ab57e3fc2da6bc6c478a0e Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Thu, 24 Jul 2025 21:41:30 +0800 Subject: [PATCH] fix(typescript): prevent auto-import range from being mapped back to negative numbers Co-authored-by: KazariEX --- packages/typescript/lib/node/transform.ts | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/packages/typescript/lib/node/transform.ts b/packages/typescript/lib/node/transform.ts index c1cde029..5268b667 100644 --- a/packages/typescript/lib/node/transform.ts +++ b/packages/typescript/lib/node/transform.ts @@ -265,24 +265,18 @@ export function* toSourceRanges( filter: (data: CodeInformation) => boolean ): Generator<[fileName: string, start: number, end: number]> { if (sourceScript) { + if (start > 0 || end > 0) { + start -= getMappingOffset(language, serviceScript); + end -= getMappingOffset(language, serviceScript); + } const map = language.maps.get(serviceScript.code, sourceScript); - for (const [sourceStart, sourceEnd] of map.toSourceRange( - start - getMappingOffset(language, serviceScript), - end - getMappingOffset(language, serviceScript), - fallbackToAnyMatch, - filter - )) { + for (const [sourceStart, sourceEnd] of map.toSourceRange(start, end, fallbackToAnyMatch, filter)) { yield [sourceScript.id, sourceStart, sourceEnd]; } } else { for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) { - for (const [sourceStart, sourceEnd] of map.toSourceRange( - start - getMappingOffset(language, serviceScript), - end - getMappingOffset(language, serviceScript), - fallbackToAnyMatch, - filter - )) { + for (const [sourceStart, sourceEnd] of map.toSourceRange(start, end, fallbackToAnyMatch, filter)) { yield [sourceScript.id, sourceStart, sourceEnd]; } }