From 825a39741eb25408f19733076d769e416f9156e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AE=B6=E5=90=8D?= Date: Sat, 18 Apr 2026 23:53:41 +0800 Subject: [PATCH] fix: correct code-map line counting --- packages/code-map/__tests__/parse.test.ts | 2 +- packages/code-map/src/parse.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/code-map/__tests__/parse.test.ts b/packages/code-map/__tests__/parse.test.ts index 57dd11251d..a15d881c05 100644 --- a/packages/code-map/__tests__/parse.test.ts +++ b/packages/code-map/__tests__/parse.test.ts @@ -132,7 +132,7 @@ describe('parse module', () => { () => multilineCode, ) - expect(result.numLines).toBe(2) // Due to operator precedence: .match(/\n/g)?.length ?? 0 + 1 becomes (2 ?? 1) = 2 + expect(result.numLines).toBe(3) }) it('should deduplicate identifiers and calls', () => { diff --git a/packages/code-map/src/parse.ts b/packages/code-map/src/parse.ts index 2ab2a0fc05..09c1866a2f 100644 --- a/packages/code-map/src/parse.ts +++ b/packages/code-map/src/parse.ts @@ -169,7 +169,7 @@ export function parseTokens( calls: [] as string[], } } - const numLines = sourceCode.match(/\n/g)?.length ?? 0 + 1 + const numLines = (sourceCode.match(/\n/g)?.length ?? 0) + 1 if (!parser || !query) { throw new Error('Parser or query not found') }