fringeの使い方
gdb-ui のソースを見てたら fringe にビットマップを表示するやり方がわかった。display プロパティに (fringe BITMAP) を指定すればいいっぽい。そうするとその行の fringe に BITMAP が表示される。
ただし、そのまま display プロパティを指定すると文字が見えなくなるから、サイズ1の文字列に display プロパティを指定して、それを before-string オーバーレイとして指定してた。
- BITMAP は fringe-bitmaps にあるものしか使えない。
- その定義は define-fringe-bitmap で行なう。
- 各状態(行を折り返してるとか)のビットマップは fringe-indicator-alist にある。
せっかくなんで fringe-bitmaps に定義されてるビットマップを全部表示するのを書いてみた。
遅いからもうねるべ。
間違って自分でスター付けた…orz
ソース
(defun fringe-sample () (interactive) (mapcar (lambda (bitmap) (let ((beg (point))) (insert (format "%s\n" bitmap)) (let* ((s (make-string 1 ?x)) (ovr (make-overlay beg (point)))) (put-text-property 0 1 'display (list 'left-fringe bitmap) s) (overlay-put ovr 'before-string s) (overlay-put ovr 'evaporate t)))) fringe-bitmaps))