Jun Mukai
mukai****@jmuk*****
2005年 11月 30日 (水) 00:27:07 JST
向井です。 > で、そのタブ補完ですが、ASCII変換でもキャッシュにある分については使 > えるようになりました。普通の変換だと個人辞書も検索されます。共有辞書 > はいずれの場合も検索されないみたいです。CVS版を試した時に共有辞書が > 検索されていると思ったのは私の勘違いだったのかもしれません... あっ、共有辞書ははじめから検索していません。 今は、起動時に個人辞書をスキャンして、最初の補完候補リストを作っています。 現在のところ、システム側の共有辞書は起動時に丸ごとスキャンしないので (サイズが大きく、起動に時間がかかってしまうため)、共有辞書から補完候補 を作るのはけっこう面倒くさいです。また、 ddskk では個人辞書だけだった ようなので「とりあえずこれでいいか」と思っていて、特にその辺は何も説明 していませんでした。 > これはscim-anthyの場合もOFFにしないとスペースでスクロールしません。 > scim-pinyinやscim-m17nだと問題ないようです。 なるほど。とりあえず、私が発見した問題の箇所について簡単に説明をします。 scim-skk では、スペース用の変換テーブルというのを持っていて、スペース バーを押すと、その入力を半角スペースに「変換」して出力しています。しか し、入力されたキーイベントを「無視」するよう false を返すのと、 true を返しつつ空白文字がコミットされるのとで、スクロールのような場合には挙 動が異なるということなのだと思います。 ですから、空白文字が入力されたときに無理にスペース文字を返すのではなく、 false を返すようにすれば正しく動作すると思われます。 なぜ変換する必要もないものを「変換」しているかというと、ワイドASCIIモー ドで、スペースキーを全角スペースに変換するのと直交した実装にすることを 意図していたのだと思います。というか、本当のことを言うとこの辺は scim-anthy のコードを特に考えずに(一部改変しつつ)流用していました(笑)。 scim-skk ではこの辺はあまり必要ないので、ちょっとした整理で直る可能性 はあります。 scim-anthy はどうすれば良いかは、ちょっとコードを見ていないのでわかり ません。