40 lines
2.5 KiB
Markdown
40 lines
2.5 KiB
Markdown
# 4-31 VSCode Explorer Context Menu Minimum v1
|
|||
|
|
|
||
|
|
> 状态:done
|
||
|
|
> 创建时间:2026-05-15
|
||
|
|
> 所属主线:04-tree-domain / VSCode Explorer 文件树与垃圾箱闭环
|
||
|
|
> 来源:`design/10-review/07-vscode-explorer-filetree-trash-gap-review.md` 阶段 7
|
||
|
|
|
||
|
|
## 1. 目标
|
||
|
|
|
||
|
|
先让主 Sidebar 右键菜单显式覆盖 VSCode Explorer 常见项,避免缺项被误读为“无能力”。已有 executor 的项接真实动作;暂无 executor 的项以禁用态展示原因。
|
||
|
|
|
||
|
|
## 2. 已落地
|
||
|
|
|
||
|
|
- `New File`:复用当前“新建子页面”能力。
|
||
|
|
- `New Folder`:禁用态,说明页面树暂不区分文件夹,待 Resource Tree folder 合同收口。
|
||
|
|
- `Paste Into`:主 Sidebar 节点右键已接真实 paste target,目标为当前菜单节点;`Ctrl/Cmd+V` 继续使用 focused target。
|
||
|
|
- `Refresh`:调用 `refreshTree()`,不使用 `window.location.reload()`。
|
||
|
|
- `Collapse All`:清空展开集合。
|
||
|
|
- `Copy Path`:复制当前页面标题路径。
|
||
|
|
- `Copy Relative Path`:复制不带根斜杠的页面标题路径,按当前 workspace tree 计算。
|
||
|
|
- `Reveal`:展开父链并滚动到当前节点。
|
||
|
|
|
||
|
|
## 3. 验证命令
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /mnt/Data1T/mnote/wolai-frontend
|
||
|
|
pnpm test src/components/sidebar/sidebar-context-menu-source.test.ts
|
||
|
|
pnpm test src/components/sidebar/sidebar-paste-preflight-source.test.ts -- --runInBand
|
||
|
|
```
|
||
|
|
|
||
|
|
结果:`sidebar-context-menu-source.test.ts` 1 项通过;`sidebar-paste-preflight-source.test.ts` 3 项通过。覆盖菜单项存在、`Copy Relative Path` 接入、`Paste Into` 右键 action target、仍保留 `New Folder` 禁用态、未引入 `window.location.reload`。
|
||
|
|
|
||
|
|
## 4. 待补
|
||
|
|
|
||
|
|
- 2026-05-15 已补 3000 主入口真实浏览器 smoke:`MNOTE_UI_BASE_URL=http://127.0.0.1:3000 node scripts/task430-vscode-explorer-stage7-smoke.js`。
|
||
|
|
- `task430` 验证 filetree 右键菜单可见 `New File / New Folder / Paste Into / Refresh / Collapse All / Copy Path / Reveal`;当时 `New Folder` 与 `Paste Into` 为禁用态,且 title 中说明原因。
|
||
|
|
- 2026-05-15 二次补强:`Paste Into` 已从禁用态升级为真实 paste target;主 Sidebar 抽出 `executeFileTreePaste(targetDocumentIdOverride)`,右键传当前菜单节点 `node.id`,键盘 `Ctrl/Cmd+V` 传 `null` 保留 focused target。
|
||
|
|
- `New Folder` 需等待 folder/resource tree 合同,而不是在页面树里临时伪造文件夹真相。
|
||
|
|
- 2026-05-15 二次补强:已补 `Copy Relative Path`;空白区右键菜单当前仍没有独立入口,后续若新增必须复用同一 paste helper 和 target 规则。
|