Page MenuHomePhabricator

輸入法設計
Updated 1,294 Days AgoPublic

Engine 有幾種狀態可以用來決定輸出(commit text):

  • 鍵盤輸入: 收到 ProcessKeyEvent
  • Lookup table (選字表): 收到 PageUp, PageDown, CursorUp, CursorDown, CandidateClicked
  • Properties (輸入法選單狀態): 向 daemon 註冊 register 以及 update, 然後收到 PropertyActivate, PropertyHide , PropertyShow
  • Pre-edit text: 組字半成品, 可以 update (同時 commit, optionally), show, hide; 通常內嵌在輸入內容中,所以最好跟真正要 commit 的內容相同
  • Auxiliary text: 組字其他狀態, 可以 update, show, hide
  • Surrounding text: 已輸入完成結果。
  • Focus: FocusIn, FocusOut
  • Client 要求的 ContextType, Capabilities

Surrounding text 可以看成是永遠在 committed 狀態的 pre-edit text,通常不會兩個混用。

或者可以在 insert 的狀態使用 pre-edit text,在 update 狀態使用 surrounding text,然後使用 auxiliary text 顯示目前狀態。

台羅輸入法 wish list:

  • 切換不組字和要組字的模式(類似酷音的中/英)
  • 選擇調號輸入按鍵: 2,3,5,7,8,9 或 /,`,[,=,',] 或 f,v,q,r,v,x)
  • 自動輸入連字號(-)
  • Lookup table: 詞庫或常用音節
  • 用 sorrounding text 修正子音、母音、或是調號
Last Author
iongchun
Last Edited
May 17 2017, 1:36 PM

Event Timeline

iongchun created this document.May 17 2017, 1:18 PM
iongchun edited the content of this document. (Show Details)
iongchun edited the content of this document. (Show Details)May 17 2017, 1:36 PM