2005年6月26日から2005年6月22日までの日記を表示中

2005年 6月 26日 (日)

uim.el

今までずっとAnthy中心でテストしながら書いてたんで,skkとかprime動かした時に想定外の動きを見せてくれたりして,結構はまりました.空のプリエディットに対処しなきゃならなかったり,ウィンドウの横幅より長い変換候補を表示しなきゃならなかったり.まあ,手抜いて作ったところが露見しただけですが.

で,まあ,今はどんな感じかというと,こんな感じです,一応.って上っ面は前と全然変わってないっすね・・・.

点猫パターン

点猫.Elispのリファレンスでfaceについて調べてたら出てきました.ググってもEmacs関連しか出てきませんね.まあ,多分「点描」の誤植なんだとは思うんですが,同じページで何回も出てきたりして謎です.用語を統一するために一括して置き換えた時にミスったのかな?

2005年 6月 25日 (土)

uim.el

うへへ,そうは言っても対応したいじゃないですか,やっぱ.というわけで,今日は,helper対応するために,

  • uim-agentの出力をバッファじゃなくフィルタ関数で受け取るように変更
    • helperのメッセージにすぐに反応するため
  • uimがスルーしたキーイベントの処理方法の書き直し
    • 単にマイナーモードのキーマップを一時的に無効にして execute-kbd-macro にキーベクトル渡せばいいだけだった・・・orz
  • バッファ間の移動に伴うフォーカスの移動の管理の追加

なんかを行ったつもりです.バッファ間のフォーカスの移動は,post-command-hook使って毎回さっきの(current-buffer)の値と変化がないかを見ることで検出できたんですが,Emacsそのものにフォーカスが入ったところを検出する方法がよくわかんねっす.まあとりあえずここは適当でいいか・・・.

で,肝心のhelper回りなんですが,コメント見ても結局なんとなくしかわかりませんでした(^^; が,uim-ximのhlper.cpp,mltermのim_uim.c,gtk2のgtk-im-uim.c を見て真似して書いてみたところ,それなりに通信できるようになりました.gkrelluimが反応してくれます( *´Д`)ハァハァ.あと,im-switcherとかでSKKに切替えたりもできるようになりました.

で,公開なんですが,もう少しお待ちを・・・.とにかく現状,Emacs側が不安定でやばいんで.変な操作すると固まったりします(^^;.

2005年 6月 24日 (金)

AIRRADE -AIR-

1ゲームだけやってみたんですが・・・.うおー,背景とか超きれい.音楽いい!・・・う,結構ムズいな.というわけでやっぱり3面で終了(^^;.

uim.el

ああ・・・次はhelperだ.というわけで,helper回りをつなぎ始めてみたんですが,こりゃやばいというか,何のための関数なのかとか何を意味しているメッセージなのかとか,ちょっと叩いただけじゃよくわからんです・・・.(;´Д`)うー難しい.

2005年 6月 23日 (木)

Emacsのvertical-motion

平日はいじらないぜヘイヘイとか言っておきながら,気になって仕方がなかったのでついいじっちゃいました.んで,先日書いた関数に早速バグ発見.ウィンドウの一番右端の半角幅のところにカーソル持ってって,そこで入力を開始し,プリエディットが全角になると禁則処理が発生してプリエディットの先頭が次の行に移ったりするわけですが,なぜか変換候補は画面の右の方に出てしまいます.手で計算する分には間違ったところに表示されるはずが無いのですが・・・.

全然わからないので関数の中身を少しずつばらして試していく内に,vertical-motion関数の動きがおかしいことがわかりました.で,さっそくググってみたら,この関数,Emacs-21系だとタブや行末の全角文字なんかがあるとちゃんと動かないみたいな話が・・・(;´Д`).あんじゃそりゃー.

確かに間にタブとか入ってると,(vertical-motion 0)で行頭に移動してくれなかったり,前の行の行頭に移動しちゃったりと,わけわからんです.で,何とかこれを回避する方法は無いかと探してみたところ,physical-line-modeなるのを発見.primeの小松さんが書いてるみたいです.入れて動かしてみたところ,すごいちゃんと動きます.超すげえ.

一体どんな秘密が!?と思ってソースを眺めてみたんですが,いまいちよくわかりませ・・・と思ったらコメントに

;; Emacs21 の vertical-motion は WIDE 文字とタブに未対応
;; Emacs21 で信頼できるのは「行頭での vertical-motion arg (> 0)」 のみ

なんて記述がッ!そうだったのかー.というわけで,いったん(beginning-of-line)で真の行頭に移動して,真の行頭から今のカーソル位置までの行数を数え,その上で真の行頭から引数の値大きくした(vertical-align)を発行するような自前vertical-alignを用意して無事解決.はじっこの方で候補出しても,おかしなことにならなくなりました.いやー,よかったよかった.とか思ってたらタイミングよくtkngさんに捕捉されてるし(;´Д`).これ,便利なのかもしれませんが,今の実装だとすさまじく重いので,あんま実用的じゃないです・・・.もっとチューニングしないと・・・.あとoverlayだかなんだかがまだうまく処理できてません.

uim.el

んで,調子に乗って,uim.el/uim-agentの方もちまちまいじってみました.さっさと普通に使いたかったので,今まで放置してたプリエディット前後でのundoリストの退避と復帰をやっと実装.anthy.elではどうしたんだっけ?とソースを見たら・・・あれ?undoリストがバッファローカルに退避されてなくね・・・(;´Д`)?しかもものすごく酷い記述だ・・・orz.恥ずかしいパッチを投げてしまったものです・・・.ごめんなさい.

2005年 6月 22日 (水)

CDとか

ふらりとメロンに立ち寄り,J.M.'s Homeさんの「JMMIDI BEST HITS -Relaxation Tracks- 〜Natural〜」を買いました.これ,M3 Edition持ってるんで,スクウェア系だけだったら別にいいかなーと思ってたんですが,Webで曲目見たら海腹川背の曲が4曲も入ってことだったんで・・・.ズルいよ(^^;.あとなぜか紫雨飯店さんの「メイドさんを右に」を購入.いったいいつ遊ぶのかと.

2005年6月26日から2005年6月22日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2005年6月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ