辞書の形式は、タブ区切りで"子音\t母音\tかな\tフラグ"で一文字にしている。子音と母音を分ける意味はあまり無いようにも思うので変更するかも。フラグはビットフラグで、「なし」、「次の文字の子音を重複させる」、「前の文字の母音を消す」、「前の文字とセットで再検索」を設定する。
再検索は「ふぁ」等を「fa」に変換したい場合などのオプション。処理中の字がこのフラグを持つ場合、前に処理していた字とこの時をあわせた状態でもう一度検索しなおす。例えば「ふぁ」の場合、そのままだと「huxa」になってしまうので、「ぁ」が来た時点で再検索を行って「ふぁ」にヒットさせる。ヒットした場合、フラグはヒットした文字に従う。ヒットしなかった場合、子音の重複、母音の消去処理を透過的に行う。
子音の重複は「っ」の処理。前に処理をしていた文字がこのフラグを持つ場合は、前に処理していた文字は現在処理中の文字の子音に置換される。
母音消去は「ゃゅょ」など。現在処理中の文字がこのフラグを持つ場合、前に処理していた文字の母音は無視される。
たぶんこんな仕様でそれなりに変換できるはずだけど。母音の小細工は、拗音全てに再検索フラグを立てて、全パターンを再検索辞書に突っ込めば網羅できるような気もする。案外そっちの方がパフォーマンスが良かったりして。撥音の方は、カスタマイズ性を無視すればわりと簡単なんだけど。
新KanjiLibをFilerModeに組み込んで動作テストをおこなってみた。全角記号を未処理なのでファイル名に全角記号を含むフォルダでエンコードエラーが起きるけれど、旧版で感じていた最初のキーを押したときのもたつきはかなりの程度軽減されたように感じる。まだ辞書形式が安定していないので、どのくらい早くなったと言えないのが残念だ。