feat: add mcpp.newProject command to scaffold and open projects - #3
Conversation
|
维护者结论:功能方向可行,
我在该提交上独立复核了 |
|
已按复核意见修改并推送(d8db658),请复核:
2./3. pending 状态问题:产品契约改为"创建并打开"(见第 4 点)后,
|
|
复核了
但当前仍有一个合入阻塞:项目名可以破坏 mcpp 生成的工程内容。
因此该输入可能让
并补充对应单测。Windows 的保留字符、保留设备名和尾随点/空格也建议按跨平台项目名策略一并处理;根本修复最终还应落在 mcpp CLI 自身,但扩展不能主动接受已知会生成坏工程的名称。 测试方面,我在隔离快照上复核了 |
|
已按复核意见完成修复并推送(c239dc0、3aa5ca0),请复核:
|
|
已完成本轮复核发现的两项修复并推送(
两项均先补回归测试并确认旧实现失败,再完成修复。完整 mcpp CLI 的根本问题(统一名称契约、路径越界、模板替换/转义和写入错误检查)已单独记录在 mcpp-community/mcpp#380;扩展侧当前修复是发布上游修复前的必要防线。 |
功能
新增
mcpp.newProject命令(命令面板「mcpp: 新建工程」),在 VS Code 内完成新项目脚手架:mcpp new <项目名>,创建同名项目文件夹mcpp.refreshCompilationDatabase,完成首次构建与 clangd 配置实现说明
McppCliController,复用runProcess与mcpp.path设置,受工作区信任约束;失败时提示并将日志保留在 mcpp 输出频道vscode.openFolder会重载窗口,刷新请求通过globalState(PENDING_NEW_PROJECT_KEY)传递到新窗口,activate 时核对项目路径后兑现,且只兑现一次void),不阻塞activate()——否则扩展激活期间命令会排队,表现为编辑器标题按钮点击无反应测试
commands.test.ts、artifacts.test.ts的命令清单断言globalState标记在打开文件夹之前写入;activate 中刷新为非阻塞调用npm test:97 个测试全部通过