2006年2月10日の日記の3番目の記事へのコメント
■uim.elとoverlay
0.0.5からオーバレイに変換候補が重なりそうな場合は変換候補をインラインで表示しないようにしてたんですが,mmm-modeでphp混じりのHTMLいじったりしてると変換候補出せたり出せなかったりでやっぱイヤンな感じなんですよねー.でもどうしようもねーしなー,とか思ってたらJae-hyeon Park氏から flyspell-mode でも下線のついた単語の上に変換候補出せるようにできんかとの質問を頂いてしまいました.
「で,できないに決まってるでしょ!」と返事を書くべくできない理由を整理して書き並べてみた所,実はできないこともないんじゃないかという気がしてきました(;´Д`).変換候補を突っ込む場合,変換候補が入るところの文字を,周辺も含めていったん全部消して,部分部分をつなぎ合わせてあたかも変換候補がバッファ内に表示されたかの如く見せかけてんですが,オーバレイは切った張った(使い方違うけど気にしない)についてきてくれず(切り取ると短くなって端に寄ったりする),キーマップやhookが設定されてたりすると中身が変わったり左右に何か追加されただけで領域広げたりする関数を呼び出したりしちゃいます.
そんなこんなで,Mewのdraftのヘッダ部分とかmmm-modeとかでオーバレイが引き伸ばされたり増殖したりでおおはまりだったので,「オーバレイに重なりそうになったら最初から変換候補をインライン表示しない」ということにしたのでした.
が,実は変換候補(およびプリエディット)を表示する前に,表示予定地の下にあるオーバレイのlocal-mapとかmodification-hooksとかを全部一時的に退避させて,変換候補やプリエディットを消す際にまた復活させるとかやればいいんではないかという気がしてきたわけですよ.さて,これでうまくいくのだろうか・・・.
2006年2月10日の日記の3番目の記事へのコメント
[コメントを書く]