选词快照记的候选绝对位置对应的是选词那一刻用户眼前的候选页,而撤销 重建的页面由恢复后的 raw 与光标前缀决定:选词之后用 Del 或光标编辑改 动过后缀时,重建页装着另一批候选,旧位置会把高亮落到不相干的项上。 - 新增 FanyImeIpc::NormalizeCandidatePagePrefix,按引擎的页身份把光标 前缀折成小写(refresh_prefix_candidates 的同一套归一化)并夹到 raw 长度。 - 快照多带一个 selected_page_prefix,取在 advance_composition_after_selection 之前(那之后引擎已经换成结算后的 raw,不再是用户看到的那一页)。 - 一次性交接从裸 int 改成 RestoredSelectionHighlight(位置 + 页前缀), HandleImeKey 重建页面后先比较前缀再套用位置,不一致就只发布新页不高亮。 - 测试更新位置交接用例并覆盖归一化谓词的空串、越界、大小写与改短后缀。
Metasequoia IME for Windows
中文 README · Website · Docs · Privacy
A free and open-source Chinese and Japanese input method for Windows 10 and 11, built on TSF with no legacy IMM32 path.
This repository is the whole Windows product: the TSF text service DLL, the resident server, the conversion engine, a self-written native GUI framework, the HTML surfaces and the installer. The engine was imported from MSIME-Engine and specialized for Windows; it now lives in engine/ as a first-party component, so a plain clone builds the product. See engine/UPSTREAM.md.
This is a public beta. Expect rough edges and read the release notes before upgrading.
Install
Download the installer from Releases or the download page, run it, then switch with Win + Space.
Current builds are not code signed. SmartScreen will block them and uiAccess is unavailable, which means the candidate window cannot float above elevated applications. Verify the download with the SHA256 published on the download page.
You need the Microsoft Visual C++ 2015–2022 Redistributable (x64). The server and settings app are 64-bit; the x86 redistributable is a separate package and does not substitute for it. If you cannot switch to the IME, the server keeps exiting, or the settings window closes immediately, install that first.
What it does
- Chinese input: full pinyin, double pinyin (Xiaohe / Ziranma / Shoudao / Microsoft), Wubi 86
- Japanese input: romaji, with hiragana, katakana and dictionary candidates; also available as a temporary mode from Chinese
- Helpcode (形码) filtering on pinyin schemes: six tables, single- and double-code
- Optional cloud candidates, and AI suggestions via DeepSeek / OpenAI / SiliconFlow / Groq
- English-Chinese glosses in the vertical candidate window
- Mixed Chinese-English input, emoji and kaomoji, a dedicated English candidate mode
- Local input statistics (off by default): character counts and active time stay on this machine; view and clean them under Settings → Statistics
- Voice input with streaming recognition and optional cleanup
- Handwriting, on-screen keyboard, floating toolbar, clipboard history
- User dictionary management, candidate frequency tuning, skins with light and dark variants
Privacy
An input method sees every keystroke, so the boundaries are stated explicitly in PRIVACY.md: which features reach the network, what each one sends, what the defaults are, and how to turn each off.
Two things worth knowing up front. Cloud candidates are on by default — the composition spelling goes to Google's input-tools service, and it is the only network feature that works without you supplying a credential. API tokens are stored in plain text in config.toml, unlike macOS and Linux which use the Keychain and Secret Service.
There is no telemetry, analytics or crash reporting of any kind.
Building and contributing
CONTRIBUTING.md has the environment, the build order and what to run before opening a pull request. Contributions do not have to be code — dictionary entries, documentation, icons and compatibility testing all count, and the recruiting page lists them by area.
Note that most issues, documentation and code comments are in Chinese. English pull requests and issues are welcome.
Licence
GPL-3.0. See LICENSE and THIRD_PARTY_NOTICES.txt.