From 5e07800c7cf45d60bbf786fb3170affddfa2f93d Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Sat, 8 Aug 2026 11:06:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(vipeye):=20=E6=94=AF=E6=8C=81=20project.jso?= =?UTF-8?q?n=20=E5=AD=90=E9=A1=B9=E7=9B=AE=20source=5Fdir=20=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit findViperProjectConfigsInChildDirs 扫描一级子目录的 .vpj/project.json, 累计 source_dir 与 includes 到 defaultExtraPaths(去重而非覆盖), 使 App 根级 import lib.core.VLogger 可在 TransPyC 目录打开时正确解析。 --- packages/vipeye-internal/src/analyzer/service.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/vipeye-internal/src/analyzer/service.ts b/packages/vipeye-internal/src/analyzer/service.ts index bb7e1d41..3b5d60d4 100644 --- a/packages/vipeye-internal/src/analyzer/service.ts +++ b/packages/vipeye-internal/src/analyzer/service.ts @@ -1459,9 +1459,19 @@ export class AnalyzerService { }); } - // 写入 defaultExtraPaths;_ensureDefaultOptions 检测到已设置时不会覆盖。 + // 累加写入 defaultExtraPaths(多个子项目配置时必须累加而非覆盖, + // 否则后一个配置会挤掉前一个的 source_dir/includes); + // _ensureDefaultOptions 检测到已设置时不会覆盖。 if (extraPaths.length > 0) { - configOptions.defaultExtraPaths = extraPaths; + const existing = configOptions.defaultExtraPaths ?? []; + const seen = new Set(existing.map((u) => u.key)); + for (const p of extraPaths) { + if (!seen.has(p.key)) { + existing.push(p); + seen.add(p.key); + } + } + configOptions.defaultExtraPaths = existing; } }