fix(editor): 新建文档自动聚焦 + 空文档占位 + 编辑面填满(docs/23)
新建/打开/恢复的标签就绪后自动把光标送进编辑器(弹窗/查找栏打开时 不抢);切回标签恢复锚点时一并聚焦。空文档首段显示「开始输入…」 占位。编辑面改为撑满窗格高度,下方空白处可点击落光标;host 显式 width:100% 防 flex 收缩窄缝。
This commit is contained in:
29
docs/23-new-doc-focus.md
Normal file
29
docs/23-new-doc-focus.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# 新建文档无光标修复(2026-11-14)
|
||||
|
||||
## 现象
|
||||
|
||||
点新建文档进来后没有明显的输入界面、没有输入光标:新标签被创建并激活,
|
||||
但从没有人把键盘焦点送进编辑器;空文档一片空白,连点哪里能写都看不出。
|
||||
|
||||
## 修复
|
||||
|
||||
1. **新建/打开自动聚焦**:新建文档、打开文件(对话框/文件树/Web 选择)、
|
||||
恢复草稿这几条创建路径给标签打 fresh 标记;其编辑器就绪(窗格 onReady)
|
||||
或激活生效时自动 focus 并落在文档开头。切回已有标签恢复锚点时也一并
|
||||
聚焦(原先只恢复了选区状态、DOM 焦点不在编辑器里,照样打不了字)。
|
||||
弹窗打开或查找栏打开时不抢焦点(maybeFocusEditor 守卫)。
|
||||
2. **空文档占位**:新增 createEmptyPlaceholderPlugin——整篇只剩一段空段落
|
||||
时给它挂 .doc-placeholder,CSS ::before 显示「开始输入…」(颜色取文档
|
||||
墨色的 38% 混淡)。有 tests/empty-placeholder.test.ts 锁定。
|
||||
3. **编辑面填满窗格**:.editor-pane-wrap 改弹性列布局,编辑面撑满窗格
|
||||
高度,空/短文档下方的大片区域同样可点击落光标。注意 flex 列里 host
|
||||
必须显式 width:100%——margin:auto 会让它按内容收缩,空文档时整列缩成
|
||||
179px 窄缝(实测踩过并已加注释)。
|
||||
|
||||
## 验证
|
||||
|
||||
- 无头实测(深色护眼主题):Ctrl+N 后活动元素与选区都在编辑器内、
|
||||
占位文案可见、行列显示 1:1;直接打字落字;鼠标点到内容下方空白处
|
||||
焦点与光标回到文档、可继续输入;几何量测 host 880 居中、PM 784 宽
|
||||
撑满高度。
|
||||
- vitest 96 通过 + 2 跳过;tsc 0;构建通过。
|
||||
Reference in New Issue
Block a user