Next: フリンジビットマップのカスタマイズ, Previous: フリンジのカーソルFrin, Up: フリンジ [Contents][Index]
フリンジビットマップ(fringe
bitmaps)は行の切り詰めや継続、バッファー境界、オーバーレイ矢印等にたいする論理的フリンジインジケーターを表現する実際のビットマップです。それぞれのビットマップはシンボルにより表されます。
これらのシンボルはフリンジインジケーターからビットマップへのマッピングを行う変数fringe-indicator-alist
(フリンジのインジケーターを参照)、およびフリンジカーソルからビットマップへのマッピングを行う変数fringe-cursor-alist
(フリンジのカーソルFrinを参照)から参照されます。
Lispプログラムも行内に出現する文字の1つにdisplayプロパティを使用することにより、左フリンジまたは右フリンジ内にビットマップを直接表示することができます。そのような表示指定は以下の形式をもちます
(fringe bitmap [face])
fringeはleft-fringeかright-fringeいずれかのシンボル、bitmapは表示するビットマップを識別するシンボルです。オプションのfaceはビットマップの表示でフォアグラウンカラーおよびバックグラウンドカラーを使用するフェイスを命名します(
faceが指定しないカラーにたいしてはfringeフェイスの属性を使用する)。faceを省略すると、fringeが指定しないカラーにdefaultフェイスの属性を使用することを意味します。defaultフェイスやfringeフェイスの属性に依存しない予測可能な結果を得るために、faceは省略せず常に特定のフェイスを与えることを推奨します。特にビットマップをfringeフェイスで表示したければ、faceとしてfringeを使用してください。
たとえば左フリンジに矢印を表示するためには、warningフェイスを使用して以下のようにできます:
(overlay-put
(make-overlay (point) (point))
'before-string (propertize
"x" 'display
`(left-fringe right-arrow warning)))
以下はEmacsが定義する標準的なフリンジビットマップと、(fringe-indicator-alistとfringe-cursor-alistを通じて)Emacs内で現在それらが使用される方法のリストです。
left-arrow、right-arrow切り詰められた行を示すために使用される。
left-curly-arrow、right-curly-arrow継続された行を示すために使用される。
right-triangle、left-triangle前者はオーバーレイ矢印により使用され、後者は使用されない。
up-arrow、down-arrowbottom-left-angle、bottom-right-angletop-left-angle、top-right-angleleft-bracket、right-bracketempty-lineバッファー境界を示すために使用される。
filled-rectangle、hollow-rectanglefilled-square、hollow-squarevertical-bar、horizontal-barフリンジカーソルの異なるタイプにたいして使用される。
exclamation-mark、question-marklarge-circleEmacsの中核機能では使用されない。
次のサブセクションではフリンジビットマップを独自に定義する方法を説明します。
この関数はウィンドウwindow内の位置posを含むディスプレイ行のフリンジビットマップをリターンする。リターン値は(left
right
ov)という形式をもつ。ここでleftは左フリンジ内のフリンジビットマップにたいするシンボル(ビットマップなしならnil)、rightは同様に右フリンジにたいして、ovが非nilなら左フリンジにオーバーレイ矢印が存在することを意味する。
window内でposが可視でなければ値はnil。windowがnilなら選択されたウィンドウを意味する。posがnilならwindow内のポイントの値を意味する。