フリンジビットマップ(fringe
bitmaps)は行の切り詰めや継続、バッファー境界、オーバーレイ矢印等にたいする論理的フリンジインジケーターを表現する実際のビットマップです。それぞれのビットマップはシンボルにより表されます。
これらのシンボルはフリンジインジケーターからビットマップへのマッピングを行う変数fringe-indicator-alist
(フリンジのインジケーターを参照)、およびフリンジカーソルからビットマップへのマッピングを行う変数fringe-cursor-alist
(フリンジのカーソルを参照)から参照されます。
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-arrow
bottom-left-angle
、bottom-right-angle
top-left-angle
、top-right-angle
left-bracket
、right-bracket
empty-line
バッファー境界を示すために使用される。
filled-rectangle
、hollow-rectangle
filled-square
、hollow-square
vertical-bar
、horizontal-bar
フリンジカーソルの異なるタイプにたいして使用される。
exclamation-mark
、question-mark
large-circle
Emacsの中核機能では使用されない。
次のサブセクションではフリンジビットマップを独自に定義する方法を説明します。
この関数はウィンドウwindow内の位置posを含むディスプレイ行のフリンジビットマップをリターンする。リターン値は(left
right
ov)
という形式をもつ。ここでleftは左フリンジ内のフリンジビットマップにたいするシンボル(ビットマップなしならnil
)、rightは同様に右フリンジにたいして、ovが非nil
なら左フリンジにオーバーレイ矢印が存在することを意味する。
window内でposが可視でなければ値はnil
。windowがnil
なら選択されたウィンドウを意味する。posがnil
ならwindow内のポイントの値を意味する。