- [X] 创建 buffer
- [X] 统计 pyim 的输入次数
- [X] 测试 huma_pyim 的输入次数
- [X] diff highlight
- [ ] emacs-rime?
- [X] 击键数据, 码长
- [X] 计时器
- [X] 结束统计
- [X] 载文, 发文
- [X] 纵向分屏
- [X] 优化 UI
- [ ] 存储数据, 分析报告
- [X] 随机发文
- [X] 随机已发内容
- [X] 随机全文
- [X] hook buffer local
- [X] 调整 hook 顺序
- [X] 键准数据
触发时间:input & delete,or buffer-changed
首先删除所有 overlay;
每次从 buffer 第一个字符开始,直到到达跟打区未尾;
取 point 和 char-at-point,比较相同位置的发文区字符;
相同则创建 same-overlay,否则 diff-overlay。
- buffer 字符数量与发文区相同了,且最后一个字符相同,结束
- 到数量相同时,最后一个字符不同,不结束
- 此时继续输入,字符数量超过发文区,结束
- 发送报告?
- 光标移到 readonly buffer
- 击键
- 未到目标时重打
- 超过目标发下一段
两种方法
- 第一次 type 时,启动一个 timer,每0.1s计录一次当前的时间
- 每一次 type 时,计录一次时间
目前用的第一种, 对现在显示方式两者没什么区别
- [ ] buffer-string 为 nil 时不应该启动 timer
- [ ] 跳转 buffer 后应该 cancel timer
- 短文: 无空格 txt, 全篇直接读为 str
- [X] 计算当前发文的长度
- 长文: ?
- 分段发文
- 按长度分割 str 存至 list
- 手动下一段/上一段
- [X] readonly buffer 中发下一段的时自动跳转,且解除 readonly
- [X] 光标在开头时不应触发
- 达标后自动下一段
- 是否需要达标
- 发送全文
用户调用继续--article中检索到--sort和stat检索到的最后一条记录--该次是否为乱 -sort中无记录 -article中无记录
- sqlite?
- [X] 计录当前文章是第几段
- [X] 计录当前文章名
失去焦点后自动暂停 切换buffer后自动暂停
- 开启另一个 timer, 记录失焦的时间, 在重新开始后让开始时间加上这个数
或: cancel timer, 记录已经经过的时间, 在重开统计后开始时间减去这个数
取后者
- 文字只读, 手动开始后可写 https://stackoverflow.com/questions/15272841/how-to-remove-a-function-from-run-with-idle-timer
- 错字为空格时不能正确结束, 猜测为空格的string-width不是2
- 输入结束时光标不在eofb时不能正确结束
- 键准统计不会计被退格的那个字的码,所以虚高一点