43 lines
2.7 KiB
Markdown
43 lines
2.7 KiB
Markdown
# N-024 Editors 与工作流
|
||
|
||
状态:`BLOCKED`(统一 context、真实 Main 只读布局清单、selection sync、上下文 keymap、
|
||
可执行 operator search 和布局预算已落地;完整 Blender editor writer、运行时焦点、
|
||
gizmo/触控和跨设备 golden 未实现)
|
||
|
||
## 已验证切片
|
||
|
||
1. N-024-A:版本化 workflow manifest 统一 workspace、area、region、active editor、mode、
|
||
view layer、pinned data 与 revision;13 类 editor 可被明确识别。
|
||
2. N-024-B(部分):只读 editor context、区域可见性、workspace/area 切换使用同一份
|
||
workflow state,rect 边界与不可重叠布局经过校验。
|
||
3. N-024-C(部分):selection sync 以 revision 事务更新 active object 与 selected IDs,
|
||
active object 必须属于 selection,过期 revision 会拒绝。
|
||
4. N-024-D(部分):key chord 统一规范化 modifier、key 大小写和排序,启用绑定的冲突会在
|
||
resolver 层拒绝,禁用绑定不参与冲突;writer、gizmo 与 touch drag 保持能力阻断。
|
||
5. N-024-D(门):keymap 绑定和预算可验证;writer、gizmo 与 touch drag 保持能力阻断。
|
||
6. N-024-B(Main reader):从 Blender `WorkSpace`、`WorkSpaceLayout`、`bScreen`、`ScrArea`
|
||
和 `ARegion` 读取有界 workspace/area/region 清单、编辑器类型、可见性与归一化布局;
|
||
不完整或包含未知 editor 的 workspace 被跳过,首个完整 workspace/area 只作为确定性只读 context,
|
||
不声称恢复 Blender 运行时焦点。
|
||
7. N-024-D(上下文 keymap):同一 key chord 可按 workspace、editor、mode 隔离;仅作用域
|
||
相交的启用绑定视为冲突,resolver 使用当前 workflow context 确定命令。
|
||
8. N-024-C(operator search):F3 搜索结果来自当前 workspace/mode/Main 状态;命令可执行
|
||
workspace/mode 切换、Add Cube、Apply Transform、Undo/Redo/Save。Chromium 用真实 `.blend`
|
||
验证了 Edit Mode 隐藏 Object-only Add Cube,Object Mode 执行后 Main revision 只增加一次。
|
||
|
||
## 仍然阻断
|
||
|
||
- N-024-B/C:Properties、UV/Image、Node、Graph、Dope Sheet、NLA、Spreadsheet 等 editor
|
||
专属数据读取/写回、真实运行时焦点、跨 editor selection history 和 context menu;当前
|
||
operator search 仅覆盖已注册的安全命令子集,不代表 Blender 全量 operator registry。
|
||
- N-024-D/E:Blender-compatible keymap 执行、gizmo/drag preview/commit、桌面/mobile/笔
|
||
触控布局、无重叠截图和 accessibility golden。
|
||
|
||
## 验收
|
||
|
||
```bash
|
||
npm --prefix web run test:editor-main-reader
|
||
WEB_TEST_PORT=5324 npm --prefix web run test:e2e -- --grep "N-024 editor"
|
||
WEB_TEST_PORT=5407 npm --prefix web run test:e2e -- --grep "operator search executes"
|
||
```
|