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

1.7 KiB
Raw Permalink Blame History

新建文档无光标修复(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;构建通过。