Files
Jia Suiandfanlusky d414268b5f [Feat] U 模式重构为部件拆字反查 (#973)
* feat(engine,server,windows,ui-html,installer): U 模式重构为部件拆字反查 (#971)

把 U 模式从 Unicode 十六进制码位输入改成部件拆字反查:Shift+U 后输入各
组成部分的拼音连写(晶 = ririri)即可出字,候选上反显注音。

- 引擎:新增 local_modes/radical_query(前缀匹配、字频降序),数据表
  engine/radical/decomposition.txt 与生成脚本;LocalInputMode::Unicode
  改为 Radical;删除 unicode_query。
- Server:g_radical_mode_triggered + IsRadicalCompositionActive + 候选分发,
  用 cpp-pinyin 反显注音;删除 Unicode 码位路径。
- 前端 TSF:删除 U 模式的十六进制/数字特例与影子预判,按普通组合处理。
- 配置:utility.unicode_mode 改为 utility.radical_mode。
- 部署:assets 登记 radical_decomposition,安装器与 CI 拷表。

数据来源 mirtlecn/rime-radical-pinyin (GPL-3.0),授权见 engine/radical/NOTICE.md。

* feat(server): U 模式反显拼音改为带调风格(jīng)

* fix(server,installer): 修复 U 模式 CI(拆字表打包夹具与 clang-format)

* fix(engine,server): 修正 U 模式按键错位、重复候选与配置迁移

- Server 在 U 模式不再吞掉撇号、分号、斜杠、大写字母等键:TSF 已把它们记进按键缓冲,
  吞掉又不重同步会让两侧串和光标错位。照常插入,含非 a-z 的码查不出候选
- 拆字查询全码命中排在仅前缀命中之前,同一个字的几种拆法只出一次
- 升级合并把旧键 utility.unicode_mode 的值带到 utility.radical_mode,读取时也兜底旧键
- 生成脚本只收汉字,重建拆字表去掉 abc 码下的 51 行数字、字母与符号
- 开着 U 模式时在后台预热拆字表与 cpp-pinyin 词典,避开首个按键的冷加载
- Server 按会话的 RuntimePaths 查拆字表,删掉走全局数据目录的便捷重载
- cpp-pinyin 初始化合并到 utils/hanzi_pinyin,设置页导入注音共用;U 模式与快捷短语的收键分支合并

---------

Co-authored-by: fanlusky <1730976608@qq.com>
2026-10-16 01:01:18 +08:00

25 lines
1.4 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.
# 来源与授权说明
`decomposition.txt` 是 U 模式(部件拆字反查)使用的「部件拼音连写 → 汉字」表。它由上游拆字
数据转换而来,不是本项目原创,权利随上游。
## 数据表
| 文件 | 内容 | 来源与权利归属 |
| --- | --- | --- |
| `decomposition.txt` | `<部件拼音连写>\t<汉字>\t<字频>`,整表按字频降序 | 由 [mirtlecn/rime-radical-pinyin](https://github.com/mirtlecn/rime-radical-pinyin) 的 `radical_pinyin.dict.yaml` 转换。上游为 **GPL-3.0**,其拆字数据又聚合自 [chaizi](https://github.com/kfcd/chaizi)(CC-BY-3.0)、[CHISE](https://www.chise.org/)(GPL-2.0-or-later)、[yi-bai/ids](https://github.com/yi-bai/ids)(MIT)。本项目按 GPL-3.0 分发,转换后的表沿用同一许可。 |
`engine/helpcode/` 里的 `jiajia` 表也用到了同一份 rime-radical-pinyin 拆字数据来重建,
那边的登记见 `engine/helpcode/NOTICE.md`。
## 本项目自建部分
`scripts/build_decomposition.py` 由本项目编写,依据 GPL-3.0 提供。它只做格式转换:
读取上游 YAML 的 `<汉字>\t<部件拼音>\t<字频>` 列,去掉撇号压成连写码,按字频降序输出。
上游版本随发布变化,重建时必须带 `--version` 显式对齐。
## 下游影响
该表随包安装到数据目录的 `radical/decomposition.txt`,引擎据此做前缀匹配。Windows 前端与
其他平台前端共用同一份数据。