edit | blame | history | raw

2026-06-26 高亮加粗回归

用户目标

继续 P1-Txtflowy 独立仓纯逻辑抽离,把高亮和加粗的目标区间/包裹计划也做成可测试逻辑。

已完成事项

  1. 扩展内联样式纯逻辑模块
  • 文件:
    • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src/editor/txtflowyInlineStylePrimitives.ts
  • 新增:
    • planTxtflowyTextWrap
  1. 更新编辑器接线
  • 文件:
    • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src/editor/TxtflowyEditorExtension.ts
  • 变化:
    • wrapSelectedTxtflowyText 不再直接在 view 层插前后缀
    • 改为消费 planTxtflowyTextWrap
    • 高亮 ==...== 与加粗 **...** 都复用这条 planner 链路
  1. 扩展测试
  • 文件:
    • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/tests/editor-inline-style.test.mjs
  • 新增覆盖:
    • 标准包裹计划
    • 空选区 noop 行为
  1. 更新记录
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/GTD-TxtFlowy.md
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/docs/implementation-log.md
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/CHANGELOG.md
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/README.md

关键决策

  • 本轮仍不引入 CodeMirror 集成测试。
  • 理由:高亮和加粗的真正脆弱点已经转成纯 planner,可通过纯逻辑测试稳定覆盖。

验证结果

执行目录:

/Users/ar/Projects/ExcalidrawX/P1-Txtflowy

执行命令:

npx --yes pnpm@10.10.0 test
npx --yes pnpm@10.10.0 build

结果:

  • test 通过:34 / 34
  • build 通过:产出 main.js

文件变更

  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src/editor/txtflowyInlineStylePrimitives.ts
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src/editor/TxtflowyEditorExtension.ts
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/tests/editor-inline-style.test.mjs
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/main.js
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/GTD-TxtFlowy.md
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/docs/implementation-log.md
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/CHANGELOG.md
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/README.md

后续建议

下一步如果继续同一路线,最顺的是把:

  • “当前 selection / 当前 line 应该选哪一段正文”的 range 选择策略继续统一
  • 再评估是否值得把 Enter / Ctrl+Enter 的 guard 也收成一层更明确的 planner