Skip to content

feat: integrate the mcpp IDE configure protocol into clangd workflow #5

Description

@wellwei

背景

当前 codex/fix-clangd-cdb-build-script 分支已经实现通过:

mcpp ide configure --format ndjson

在普通源码编译和链接前发布 IDE 编译数据库,并让扩展在缺少 CDB、manifest 或相关设置变化时重新协调 clangd。

该 CLI 协议目前仍只存在于 mcpp#372,尚未进入 mcpp main 和正式发布版本。因此扩展实现可以继续 Review/整合,但不能在依赖可安装前作为稳定版本发布。

当前状态

  • 实现分支:codex/fix-clangd-cdb-build-script
  • 已 rebase 到 mcpp-vscode v0.2.5
  • 本地发布目标暂定为 0.2.6
  • npm test:104/104 通过
  • 重写后的分支尚未 force-push
  • mcpp#372 的 GitHub Actions 已通过,目前等待 Review

依赖与发布边界

  1. mcpp#372 合入。
  2. 包含 IDE configure 协议的 mcpp 版本可实际安装。
  3. 使用该正式版本完成 mcpp-vscode 端到端验证。
  4. 在此之前可以合入独立的 mcpp-vscode PR,但不应发布依赖该协议的扩展版本。

后续工作

  • 先处理独立的 mcpp-vscode feat: add mcpp.newProject command to scaffold and open projects #3feat: add opt-in code completion for mcpp.toml #4
  • mcpp#372 合入后,将实现分支再次 rebase 到最新 mcpp-vscode main
  • 整合 feat: add mcpp.newProject command to scaffold and open projects #3 的新建工程流程,明确首次打开工程是执行完整 build,还是只执行 IDE configure,避免重复工作。
  • 确认扩展消费实际发布的 NDJSON schema 和 authoritative CDB 路径。
  • 验证 multi-root workspace 的 manifest watcher 会刷新发生变化的对应工程。
  • mcpp.path 变化时重新执行 IDE 配置。
  • 将 IDE configure 命令加入快捷菜单,保持命令面板与快捷入口一致。
  • 根据期间是否已经发布扩展版本,最终确定 0.2.6 或后续版本号。
  • 运行 npm test、VSIX 打包与归档校验,并使用正式发布的 mcpp 做真实集成测试。

验收标准

  • 缺少 compile_commands.json 的受信任工程可通过正式发布的 mcpp 获取有效 IDE CDB。
  • 旧版 mcpp 或协议失败时给出明确诊断,不破坏已有可用 CDB。
  • manifest、相关设置和多根工作区变化会刷新正确工程。
  • 新建工程不会无意重复执行 IDE configure 和完整 build。
  • 发布版本的测试、VSIX 校验和真实 CLI 集成测试全部通过。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions