emoji: repair one-shot candidate selection

This commit is contained in:
2026-08-11 23:30:41 +09:00
parent 0fff17c8b8
commit 2ae87a3926
14 changed files with 473 additions and 54 deletions

View File

@@ -29,9 +29,9 @@ mirrors must provide the same sibling; initialize it after cloning with
The suite covers the fixed-size UTF-8 string, hash table, trie fixtures,
Japanese/Hangul/Telex state transitions, dictionary candidates, engine
selection state, and production map loading. Tests use explicit case tables,
boundary values, and small regressions for repaired core contracts. IPC and GUI
protocol stacks are outside this suite and require separate integration checks.
selection state, IPC request fields, and production map loading. Tests use
explicit case tables, boundary values, and small regressions for repaired core
contracts. Full IPC and GUI protocol stacks require separate integration checks.
## Run
@@ -69,7 +69,7 @@ Switch input modes with Ctrl + key:
P Toggle preedit echo
Type romanized input. Select candidates with 1-9 or arrow keys.
Tab or Enter to commit.
Outside one-shot search, Tab or Enter commits.
### Emoji and symbols
@@ -82,13 +82,17 @@ preedit echo.
안녕 → Ctrl+E → smile → Enter → 😀
There is no auto-insert. Enter commits the first candidate (or the current
one); arrows and Tab move, Alt+1 through Alt+9 select, Esc cancels. Plain
digits are part of the query.
one); arrows and Tab move, and Esc cancels. Bare 1 through 9 select an existing
numbered row; a bare digit with no such row and 0 remain query text. Digit
aliases are kept in matching slots, so `^1`, `_2`, and `<3` produce `¹`, `₂`,
and `♥`.
`map/emoji.src` is the source of truth: each UTF-8 TSV row is a result followed
by one or more tab-separated aliases. Aliases may be multilingual. Run
`map/mkemoji > map/emoji.dict` after editing it; `make verify-map` checks the
generated dictionary and the Telex map.
by one or more tab-separated aliases. Aliases may be multilingual and ASCII
letters are case-insensitive. Results and aliases are limited to 64 Unicode
code points; results cannot contain whitespace. Run `map/mkemoji > map/emoji.dict`
after editing it; `make verify-map` checks the generated dictionary and the
Telex map.
😀 웃음 웃다 스마일 smile grin