2007年4月21日の日記を表示中

2007年 4月21日 (土)

uim.elとfont-lock-mode

新しくいじってるやつ,XEmacsだと変換候補をインラインで表示した際に色が抜けてしまうことが発覚.変換候補と同じ行に font-lock-comment-faceやfont-lock-string-face,font-lock-keyword-face あたりがついた文字列があると,変換候補が出た瞬間に色が抜け落ちます.が,何故か font-lock-reference-face だけは色が残る模様.なんじゃこりゃ.

試しに after-change-functions を nil にして buffer-substring で切り出してみると,font-lock-reference-face のところは切り出した文字列にもちゃんと色がつくのに,それ以外の場合だと,切り出した文字列に色がついてくれません.うーん.

get-text-propertyで face を引っ張り出してみると,色が切り出されるところは「(font-lock-reference-face)」という風にリストが返ってきています.一方,色が抜けちゃうところは「font-lock-comment-face」とか「font-lock-string-face」みたいにface名(?)が返ってきます.この辺が鍵を握ってるのか?

とりあえず↓みたいなの書いて,変換候補が重なるところのfaceを全部リストに直すようにしてみたら何と色が抜けなくなりました.いいのかこんなんで・・・.ていうか,こんなことばっかやってるからぐちゃぐちゃになるんだよなぁ.

(defun uim-overwrite-font-face (start end)
  (let ((facelist '()) tail face)
    (catch 'face-loop
      (while t
        (setq tail
              (next-single-property-change start 'face (current-buffer) end))
        (if (setq face (get-text-property start 'face))
            (if (atom face)
                (put-text-property start tail 'face 
                                   (cons face nil))))
        (setq start tail)
        (if (= start end)
            (throw 'face-loop t))))
    )
  )

しかし,ほんと,XEmacsでuim.el使ってる人ってどんくらいいるんでしょね・・・.

ドラゴンブレイズ

一応5ボス倒せそうなところまで行けました.でも相変わらず何でもないところで死んだりするのが悲しい・・・.1周はまだ夢のまた夢・・・.

2007年4月21日の日記を表示中

中の人情報

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

カレンダー

2007年4月
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件のコメント

過去ログ