2006年4月12日の日記の2番目の記事へのコメント
■uim-input-pad-jaとuim.el
これの話.実のところ,「commit_string」は実装してなくても困らないメッセージ(将来使うかもねー系)だと勝手に思い込んでました.なんでだろう・・・.まあ,何にせよ,uim-input-pad-jaは,今まで一度も使ったことなかったわけですが(何するためのものなのかも知らなかった).
で,これ,サポートするにはどうすんのという話ですが,どうやるのがいいんですかねー.前にどっかで書いたような気もすんですが,uim.elではユーザのキー入力とかウィンドウのリサイズとかに反応してuim-el-agentにメッセージを送り,返ってきたのを受け取って,それを元にバッファやモードラインを更新する,という処理をしてるだけだったりします.なので,ユーザがEmacsに触らない限り,uim-el-agentが外からあれこれ言われても何も起きないんですよね・・・.さてどうしよう.
- バッファの出力をフィルタで受け取るように変更して,出力が変化したらEmacsが反応するようにする
- キー押して,結果が返ってくる前にカーソルが動かせちゃったりしたら恐くない?
- Emacsのタイマ機能を使って,何もしてないときにもuim-el-agentの出力をちょくちょく見る
- run-with-idle-timer は,「Emacsが放置されてから一定時間後に何かする」という使い方しかできず,0.1秒おきに何かするとかできないっぽい?
- uim-el-agent側からシグナルをEmacsに送ってつつかせる
- Emacsでどうやってシグナル処理するのかリファレンスに書いてなくね?でも,ソース見るとUSR1とかUSR2は律義に反応してくれそうな雰囲気です.試しにUSR1とか送ってみたら,キー入力やメニュー選択と同じように「usr1-signal」というイベントがが!これならいける!・・・と思ったんだけどXEmacsはUSR1で死にますた(;´Д`).萎える.
- 外からのメッセージ受け取り専用のプロセスを用意して,フィルタで出力を処理
- あんまり色々動かしたくないけど,うまくやればuim-el-agentの中の処理がよくなるかも・・・しれないがElisp側でやることが増えそう
- おとなしくユーザが何か操作したときにバッファを更新する
- commitとかはそんときフォーカスされてるコンテキスト内で蓄積しときゃいいんだし,これでもいいのかなぁ
んー,とりあえずXEmacsは放置でシグナルでやってみるかぁ・・・.他にいい方法あったら教えてください.
[コメントを書く]
2006年4月12日の日記の2番目の記事へのコメント
じゃん・・・(;´Д`).めどいな・・・.
と,doc/COMPATIBILITYを見るとCharsetが必要になったようですね.
あれ,でもdoc/HELPER-PROTOCOLにはなく,input-pad-ja.cでも出してる気配が無い・・・
だけど,uim-fepはcharset=""がないと処理しないようになっていて・・・
ヽ(`Д´)ノ ウワァァァン もう寝ノレ!