CorvusSKKをベースに、漢字直接入力用機能を追加して、tsf-tutcodeを作りました。
ソース:
https://github.com/deton/tsf-tutcode
インストーラ:
https://github.com/deton/tsf-tutcode/releases
漢直Winに比べてまだ機能が少ないですが、
自分で使うにあたって最低限の機能はできたので、いったん公開します。
* 機能: CorvusSKKに以下の機能を追加しています。
なお、素のCorvusSKKでも漢字直接入力や交ぜ書き変換(前置型)は可能です。
・後置型部首合成変換
・後置型交ぜ書き変換
・後置型カタカナ変換
TUT-CodeとT-Code用のコード表ファイルや、
交ぜ書き変換辞書ファイルを同梱してあります。
(部首合成変換辞書はソースに埋め込み)
* 目的
モード無しで後置型変換を基本とするInputMethodにすることを目指しています。
* 背景
最近、カタカナ入力を後置型変換で行うようにしたのですが、
漢直Winの後置型変換だと、内部に持っている入力済バッファに対して
変換が行われるため、以下の点で少し使い勝手が良くなく、
TSFでカーソル直前の文字列を取得して変換を行うものが欲しかったので。
・カーソル移動後に意図しない変換(余分に削除が行われる等)が行われることがある
・確定時のBackspaceの送り付けに遅延を入れないと、
変換前の文字が残ってしまうことがあるが、確定完了まで待たされる。
* 漢直Winとの違い
** IMEとしての実装
** Windows 8のストアアプリにも入力可能
** 内部Unicode(漢直Winはcp932)
ただし、追加した後置型部首合成変換や後置型カタカナ変換では、
surrogate pairや結合文字、IVSの考慮は未実装。
** 未実装機能: 文字ヘルプ表示、仮想鍵盤表示、など多数。
* 実装関係の話
** カーソル直前の文字列取得処理は、mozcのソースを取り込んでいます。
** 部首合成変換処理は、漢直Winのソースとkwbushu.revを取り込んでいます。
** なるべく早く、動くものを作りたかったので、
交ぜ書き変換機能がそのまま使えるCorvusSKKをベースにしました。
mozcのconverterやcomposerに手を入れる方法もありそうだったのですが、
# フロント側はmozcを使って、変換処理側はuimを使うmozc-uimとか。
mozcのソース量が多くて把握も時間がかかりそうなのと、
かな漢字変換が、かなからの変換に最適化されていそうで、
交ぜ書き変換にはそのままでは使えないような気がした(未確認)ので見送りました。
** mozcやCorvusSKKのバージョンアップに追随しやすくするため、
なるべく小さな変更にするようにしています。