Repository navigation
Releases: adam-ikari/term-ime
Releases · adam-ikari/term-ime
Release list
v1.1.8
Full Changelog: v1.1.7...v1.1.8
v1.1.7
修三个吞键 / 误路由的 bug,都在组合态下发生,用户能直接撞上。
Enter 现在提交候选
此前 \r 既不匹配字母分支也不匹配标点分支,被当作裸换行直接转发给 shell,
候选词永远上不了屏。更糟的是数字选词之后组合态还开着,下一次 Enter 会再提交
一遍,于是 shell 去执行上屏的中文词,报 not found。
IME 没消费的按键不再被静默丢掉
中文模式下按 [7,7 被吃掉 —— 数字没有对应的候选槽位,代码走了 continue,
字节就没了。现在每个按键分支都必须用 KeyClaim 明示自己去向(消费 / 转发 /
丢弃),全仓库刻意丢弃的地方只剩 2 处,grep KeyClaim::Drop 可见。
转义序列作为整体处理
此前逐字节分发会吃掉开头的 ESC,再把 [、3、~ 分别喂给 IME。按 Delete
会提交你正在拼的拼音,并往 shell 里注入字面量 [3~。
三个 bug 同一根源:每个分发分支各自决定「这个键怎么办」,而「丢掉」是隐式的。
其他
- 模糊音的 generated schema 改为 init 时 join,消除 prism 部署竞态
- 删除 Termux 支持。它一直是实验性的,arm64 Android 二进制只在模拟器上跑过,
从未在真机验证过 - 删掉
send_to_shell的两条写出路径之一:排序保证原本来自「追加」而非「立即
写出」,所以两条路径里必有一条是错的 - 修
advance_candidate_window隐式依赖render()刷新快照 - 测试:gtest 118 个;7 套 python e2e。
test_paste_delivery.py之前根本没在 CI
里跑过,现已加入 - 删掉
tests/test_ime_state.cpp—— 整个文件都是同义反复(断言两个枚举值不相等、
断言自己等于自己),永远不会失败;换成 8 条ImeEngine契约测试 - 删掉死代码
src/ime/kaomoji.*(249 行,从未被链接器拉进二进制)
升级:
ti --version v1.1.7 # 或直接重跑 install.sh,它会解析 /releases/latestFull Changelog: v1.1.6...v1.1.7