第 25 章:编辑器组件 — 交互复杂度的集中地
编辑器补全竞态、粘贴数据、撤销与输入法状态;保留跨章快捷键解释冲突。
本文目录 3
来源:《pi 的设计艺术》第 25 章:编辑器组件 — 交互复杂度的集中地
阅读日期:2026-09-14。书中版本基线:基于 v0.66.0,书中称已对照 v0.82.1;命令快捷语义存在跨章冲突。 本条为原创阅读笔记,未独立核验 pi 源码。
设计问题与机制
输入框复杂度来自多行编辑、补全、附件、粘贴和输入法状态的组合。异步补全同时使用防抖、取消和请求编号:防抖减少调用,编号才阻止已发请求的旧结果覆盖新状态。光标和替换范围必须随请求关联。
大粘贴显示为原子标记,原文另存;撤销需要一起恢复文本与粘贴表,删除和清空也须同步记账。字素簇及显示列宽分别避免切碎视觉字符和超出终端宽度。焦点、滚动与输入法组合状态不能各自独立处理。
取舍与版本边界
丰富交互减少用户切换,但增加状态交叉测试成本。本章把 !! 写成重复命令,与第 22、26 章明确的 excludeFromContext 语义冲突。不采纳“重复命令”为当前操作说明;具体快捷键还应按目标版本实现确认。
工程应用检查(独立推导)
验证“触发检索—继续输入—旧响应到达”、附件删除后撤销、提交清空和中文组合输入。输入法中间态不能触发提交。富输入内容应有稳定标识,文本快照与附件数据作为一个恢复单元,否则可能视觉恢复成功,实际发送数据却丢失。
读到这里,有新的想法?
围绕本文聊聊