Files
new-markdown/docs/23-new-doc-focus.md
Muse c0f03e48dc fix(editor): 新建文档自动聚焦 + 空文档占位 + 编辑面填满(docs/23)
新建/打开/恢复的标签就绪后自动把光标送进编辑器(弹窗/查找栏打开时
不抢);切回标签恢复锚点时一并聚焦。空文档首段显示「开始输入…」
占位。编辑面改为撑满窗格高度,下方空白处可点击落光标;host 显式
width:100% 防 flex 收缩窄缝。
2026-11-14 16:06:27 +08:00

30 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 新建文档无光标修复(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;构建通过。