Skip to content

fix: xlings 发现以 mcpp self env 为权威来源(项目级契约),路径探测仅作回退 - #11

Merged
wellwei merged 3 commits into
mcpp-community:mainfrom
lildengzi:fix/find-xlings-mcpp-bundled
Aug 8, 2026
Merged

fix: xlings 发现以 mcpp self env 为权威来源(项目级契约),路径探测仅作回退#11
wellwei merged 3 commits into
mcpp-community:mainfrom
lildengzi:fix/find-xlings-mcpp-bundled

Conversation

@lildengzi

@lildengzi lildengzi commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

问题

findXlingsExecutable() 只探测 ~/.xlings/** 和 PATH,从不检查 mcpp 自带的 xlings。

mcpp 是项目级开发环境(社区明确不做的系统级 PATH 集成),其 xlings 由 mcpp 本体托管:

  • install.sh / 自定义 MCPP_PREFIX$MCPP_HOME/registry/bin/xlings
  • AUR 包装脚本:通过 MCPP_VENDORED_XLINGS 固定。

结果:标准安装后「一键配置模块代码提示」在 clangd 阶段必然失败(未找到 xlings … 无法安装匹配的 llvm-tools),无法自动装 xim:llvm-tools,也就得不到与 mcpp LLVM 编译器同 revision 的 clangd。

修复(遵循"问 mcpp,不猜路径"的项目级契约)

  • 新增 resolveXlingsExecutable(mcppExecutable):优先执行 mcpp self env 并解析 xlings binary = … 行——让 mcpp 本体 报告它自己带的 xlings 位置(任何安装布局都成立),确认文件存在才返回;
  • 仅当 self env 失败/无该行时,回退到原有路径探测(兼容独立 ~/.xlings 安装);
  • McppCliController.mcppExecutable 改为 public,供向导取当前生效的 mcpp 可执行路径(含 mcpp.path 配置)。

测试

  • 新增 resolveXlingsExecutable 用例:self env 报告路径命中、报告路径不存在时回退、self env 失败时回退;
  • 保留原 findXlingsExecutable 路径探测用例;
  • 全量:npm test 246/246 通过。

相关

实测环境:Linux(Arch/CachyOS) + AUR mcpp-bin + install.sh;升级扩展到 0.2.6 后触发。修复后扩展可自动定位 xlings 并完成 llvm-tools 安装与 clangd 匹配。

@lildengzi lildengzi changed the title fix: findXlingsExecutable 支持发现 mcpp 内置 xlings($MCPP_HOME/registry/bin 与 MCPP_VENDORED_XLINGS) fix: xlings 发现以 mcpp self env 为权威来源(项目级契约),路径探测仅作回退 Aug 8, 2026
@Sunrisepeak
Sunrisepeak requested review from Ximiaw and wellwei August 8, 2026 17:41
@wellwei
wellwei merged commit d4fd363 into mcpp-community:main Aug 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants