Takuro Ashie
ashie****@homa*****
2005年 11月 14日 (月) 00:46:57 JST
足永です。 On Sun, 13 Nov 2005 23:46:26 +0900 Jun Mukai <mukai****@jmuk*****> wrote: > ちょっと見てみたのですが、 scim のヘルパープラグインを活用されています > よね。このヘルパープラグインが、「選択範囲の文字列を切り出す」という処 > 理をしているという解釈でよろしいでしょうか? はい。 ヘルパー側でセレクションを取得し、IMEngine側でカーソル周辺文字列を取り出 してカーソル前後の文字列とマッチングを行い、選択範囲と思しき文字列をプリ エディットに差し替えています。 ただ色々問題があって、例えば * 本当に両文字列が同一アプリケーション上のものだと保証できるのか? * Gtk+に依存している * でも実質Xでしか動作しないような * SKIMで使えない? 等々です。まあ実質的にはさほど問題とならないものがほとんどなので、妥協案 としてはそんなに悪くないかもしれません。 このヘルパーには他に、タイマー機能も持たせています。一定時間経過後にイベ ントを発生させる機能です。現在は親指シフトの単独打鍵検出のためにのみ使用 していますが、例えばエラーメッセージ等を一定時間経過後に消す等の処理にも 使えるかもしれません。 ヘルパーには主に2種類の存在意義があると思います。 * GUI(特定のツールキット)に依存する機能の実現 * イベントループを必要とする機能の実現 今回、その2つの実際の利用例を示した格好になります。 > skk でも、 emacs 上では「いったん確定させた文字列(ひらがな)から再度変 > 換をかける」という小技がありますが、もしヘルパー部分だけ独立させて使い > まわせるようになれば scim-skk 側からも利用できたりするかもしれず、非常 > に便利なのではないかと思いました。 これは色々と迷うところですね。 コード的には非常に小さいので単独のパッケージに分けるほどではないと思うの ですが、IMEngineごとに別々に持つのも確かにばかばかしいと思います。 両機能ともSCIMに実装されているとうれしい機能ではあるのですが、このような マイナーな要求を満たすためにフレームワークがどんどん肥大化するのは嫌な感 じです。また、もしフレームワーク側に実装しようと思うと、ヘルパーよりもフ ロントエンドに実装した方がいいと思うのですが、そうするとただでさえ開発コ ストが少し高めなSCIMのフロントがますます作り辛くなってしまうのが厳しいよ うな気がしています。 ともあれ、一度Jamesさんに相談してみようかな。