Commit Graph
80 Commits
Author SHA1 Message Date
fanlusky 943b6fbd4b Add J mode, the shorthand pinyin mode. 2026-08-19 08:05:44 +08:00
fanlusky 7c7df2e4c6 Add inline preedit in-time ars result support for voice input. 2026-08-17 00:55:45 +08:00
fanlusky 8565b0531b Add kaomoji to mixed candidates (after emoji) behind general.kaomoji_mixed_input
kaomoji_ime: async worker mirroring emoji_ime; KaomojiQuery::QueryPrefix
gains a db_path override. NormalizeMixedCandidateOrder places kaomoji right
after emoji, shifting with cloud/AI. event_listener wires
UpdateKaomojiInput/ApplyKaomojiCandidates/EnqueueKaomojiCandidates and the
PrepareCandidateList trigger; config general.kaomoji_mixed_input is plumbed
through settings_app/webview2; main.cpp starts/stops KaomojiIme; ordering test
added.
2026-08-17 00:08:24 +08:00
fanlusky 7a35c8c20e Add M-mode (Shift+M) for quick kaomoji input
Shift+M enters a kaomoji quick-input mode backed by the kaomoji table in
others.db, supporting full pinyin, abbreviated pinyin, English words, and
shuangpin expansion. Candidates commit directly via the new
CandidateSource::Kaomoji; a [utility] kaomoji_mode toggle is wired through
settings. Hardens candidate payload rendering (HTML / backtick / comma
escaping) so kaomoji, which often contain < > &  and commas, display correctly.
2026-08-16 23:16:11 +08:00
fanlusky d15319bd66 Add emoji to mixed candidates (slot 3, shifts with cloud/AI) behind general.emoji_mixed_input. 2026-08-16 19:29:52 +08:00
fanlusky 08ee504609 Add E-mode (Shift+E) for quick emoji input
Shift+E enters an emoji quick-input mode backed by the emoji_pinyin index in
others.db, supporting full pinyin (xiaolian), abbreviated pinyin (xl), English
words (laugh), and shuangpin codes (Xiaohe xnlm expands to xiaolian).

- src/emoji/emoji_query.{h,cpp}: prefix lookup over emoji_pinyin with
  shuangpin->quanpin expansion driven by the active scheme
- event_listener: Shift+E trigger, composition helpers, candidate branch, and
  direct commit through the new CandidateSource::Emoji
- config: [utility] emoji_mode toggle wired through settings_app / webview2
- tests: emoji_query coverage for full/abbrev pinyin, English, Xiaohe shuangpin
- engine submodule: CandidateSource::Emoji (core/word_item.h)
2026-08-16 18:54:54 +08:00
fanlusky c18898f7d9 Add weekday quick input (xq/xingqi/week) to the T-mode and keep T-mode from leaking normal pinyin candidates. 2026-08-16 17:48:11 +08:00
fanlusky d9a7235919 Do not segmentation for help code part. 2026-08-16 03:04:02 +08:00
fanlusky 2bc321ecfb Add uppercase-first reverse auxiliary-code matching with dedicated caching for Shuangpin. 2026-08-16 02:40:14 +08:00
fanlusky 8ec9ec9f17 Add the feature that repeated smart punctuation input switches to Chinese punctuation. 2026-08-10 03:23:50 +08:00
fanlusky 6f50814266 Add Microsoft Shuangpin scheme. 2026-08-10 01:54:27 +08:00
fanlusky a2aedbf39f Support paired punctuation. 2026-08-10 00:38:09 +08:00
fanlusky dd113048f8 Add validation for dictionary insertion. 2026-08-09 22:27:16 +08:00
fanlusky 29242b2641 Also add short english words to cands. 2026-08-09 18:37:04 +08:00
fanlusky 32d9978fd5 Add some time and date styles. 2026-08-09 18:13:48 +08:00
fanlusky 33a86c11b6 Add date-time quick input (T-mode) feature, strengthen installation to not overwrite user's config.toml, and add a cold-start protection for FTB that "displays within the page ready / up to 6s grace period, then shows/hides according to actual status" (still rebuilds webview2 on upgrade). 2026-08-08 12:37:24 +08:00
fanlusky 23d78f161a Fix the issue where some database entries fail to replay during installation. 2026-08-04 23:25:21 +08:00
fanlusky 28b7f174e6 Fix the issue where words created from cloud candidates cannot be deleted. 2026-08-04 02:50:05 +08:00
fanlusky 4f608437a0 Fix UILess Mode issues to support Chinese input in Delta Force. 2026-08-04 01:09:38 +08:00
fanlusky 6a7b6c58d0 Fix the issue where the configuration for 9 candidates does not take effect. 2026-08-03 22:29:24 +08:00
fanlusky 5f85070f2b Add more auxiliary code schemes. 2026-08-03 01:12:45 +08:00
fanlusky 3747f42128 Fixed the issue where, after adding a manual segmentation symbol to the full pinyin xs'h, the preceding part does not automatically segment. 2026-08-03 00:45:32 +08:00
fanlusky b7f17facfa Expand the range of the candidate window font size setting slightly.
Fix the issue where AI predictions cannot be directly committed and instead trigger word-creation mode, and fix the issue where words generated by AI predictions cannot be deleted via right-click.
2026-08-03 00:07:20 +08:00
fanlusky aad3992541 Migrate some shortcuts to keyeventsink. 2026-08-02 22:57:21 +08:00
fanlusky a4206951a9 Fix the issue where the Chinese/English status between the tray icon and the FTB is not synchronized in VSCode multi-window scenarios, and also fix the issue where Chrome applications do not follow the default Chinese/English status when opened. 2026-08-02 21:47:54 +08:00
fanlusky 9fa82d8878 Add English input mode. 2026-08-01 23:15:02 +08:00
fanlusky 4848ac1cff Fix the issue where selecting candidates with the numeric keypad fails to commit and causes the interface to flicker and freeze. 2026-08-01 17:45:12 +08:00
fanlusky 70d40bfa10 Fix: 仓耳今楷 now is supported in cand wnd and settings wnd preview. 2026-08-01 15:33:00 +08:00
fanlusky de6b5affc0 Add shoudao shuangpin schema. 2026-08-01 04:30:15 +08:00
fanlusky 3b3b7304ec Preserve user configuration during upgrade. 2026-08-01 03:33:42 +08:00
fanlusky f70d210465 In auxiliary code mode, AI prediction should not send requests, just like cloud prediction. 2026-07-31 16:12:03 +08:00
fanlusky 4994aa884a fix(candidate): prefetch initial candidates before partial last page
Expand limited single-letter candidates before entering a partially filled
last page so pagination advances normally and the page is full on first display.
2026-07-29 22:23:33 +08:00
fanlusky 2983594211 test(shuangpin): cover multi-syllable suggestion storage
Add regression coverage for storing multi-syllable cloud and AI candidates
from their raw shuangpin sequence.
2026-07-29 20:45:28 +08:00
fanlusky a033f9d2c2 feat(composition): support phrase creation from incomplete pinyin
- continue phrase creation for abbreviated quanpin and shuangpin input
- preserve manual segmentation boundaries in the remaining input
- restrict helpcode detection to complete unsegmented pinyin
- accumulate and validate canonical pinyin before phrase insertion
- route completed phrases through canonical-pinyin storage
- add coverage for abbreviations, manual segmentation, and helpcodes
2026-07-29 19:53:21 +08:00
fanlusky 2edf16d01e feat: add word-to-character candidate selection
- add a disabled-by-default word-to-character setting
- commit the first or last Han character with [ and ]
- use the highlighted candidate for punctuation commits
- preserve punctuation behavior when no Han character is available
- add exact-text commit IPC support and related tests
2026-07-29 13:43:36 +08:00
fanlusky e41bee9a20 feat(candidate): support cross-page arrow navigation
- move down from the last candidate to the next page
- move up from the first candidate to the previous page
- preserve selection when expanding initial candidates
- keep navigation bounded at the first and last candidates
- add regression tests for cross-page selection
2026-07-29 12:18:13 +08:00
fanlusky 06173c1e25 fix(input): deduplicate manual separators during composition editing
- reject apostrophes adjacent to an existing manual separator
- add regression coverage for quanpin and shuangpin deduplication
- update the IME engine submodule
2026-07-29 11:57:19 +08:00
fanlusky 049ba5d20a fix(quanpin): preserve manual segmentation in preedit and candidate 2026-07-29 11:38:27 +08:00
fanlusky 21fb3a9e2e feat(settings): add user dictionary export support
- export Pinyin, Wubi, English, and quick-phrase dictionaries
- export unknown-source multiword Pinyin entries
- filter single-character Pinyin entries
- generate UTF-8 text files with dictionary-specific formats
- add coverage for insertion tracking and bounded ranking
2026-07-29 01:17:18 +08:00
fanlusky f24437ab8e fix: handle terminal IME deactivation fallback
Accept authenticated terminal deactivation notices over the Aux pipe when the
Main connection fails during teardown. Fence fallback notices by client and
focus token to prevent stale sessions from hiding the floating toolbar, and
add regression coverage for the validation policy.
2026-07-29 00:16:16 +08:00
fanlusky 025f966a90 perf: reuse persistent database connections for fixed candidates 2026-07-27 20:46:49 +08:00
fanlusky e8736d66b9 feat: integrate candidate ranking, pinning, and cache refresh 2026-07-27 20:25:27 +08:00
fanlusky d5523dd44d feat: preserve user dictionary changes across updates 2026-07-27 16:32:34 +08:00
fanlusky 02d5a3ff37 fix(candwnd): measure and size candidate wrap at 600 DIP
Force wrap-aware measure, serialize FineTune after measure content
updates, and preserve flip-up host height via MarginTop.

feat: lazily load single-letter Pinyin candidates

- query the top 24 single-letter candidates from the database
- load the complete candidate list on the first page-down action
- apply the same behavior to Shuangpin and Quanpin
- resolve Shuangpin initials according to the active profile
- preserve candidate frequency adjustment and pinning
- disable deletion for single-letter candidates
- add regression tests for Shuangpin v-to-zh mapping and lazy expansion
2026-07-27 16:12:46 +08:00
fanlusky 0dbe4c2c86 Add voice commit modes, InsertText IPC, and Ctrl+Shift+Alt hotkey fix.
Support tsf/sendinput/ctrl_v voice commit, route TSF inserts via worker
InsertText, handle WM_SYSKEYDOWN for Ctrl+Shift+Alt+digit candidate delete,
and skip watchdog when the IME profile is disabled.
2026-07-25 21:30:44 +08:00
fanlusky 4f859d012f fix: stabilize AI/cloud candidate apply to restore paging and prevent duplicate 🤖
Skip async AI/cloud refresh on paging and selection keys, early-exit when the
suggestion is already in the list, and dedupe series-cache inserts so repeated
cache hits no longer reset page_index or accumulate AI rows.
2026-07-24 00:37:23 +08:00
fanlusky 7f06a1a046 fix: sync tray floating-toolbar toggle from config
Refresh the menu toggle from general.floating_toolbar on show,
navigation, and config reload so it stays aligned with Settings.
Refs metasequoiaime/MetasequoiaImeTsf#17
2026-07-23 21:43:15 +08:00
fanlusky c92bff8734 Preliminarily support customizing preedit on the TSF side. 2026-07-21 13:00:15 +08:00
fanlusky 4765d72156 Integrate the handwriting recognition board into the server. 2026-07-20 01:57:31 +08:00
fanlusky 7775b97c09 Fix the issue where the candidate window cannot be pulled up when switching back from Microsoft's emoji panel, and deeply optimize the stability of IPC connections. 2026-07-16 21:41:09 +08:00