フリンジビットマップとは、切り捨てまたは継続された線、バッファ境界、オーバーレイ矢印などの論理フリンジインジケータを表す実際のビットマップのことです。各ビットマップはシンボルで表されます。これらのシンボルは、フリンジインジケータをビットマップにマッピングする変数
fringe-indicator-alist(フリンジインジケータを参照)と、フリンジカーソルをビットマップにマッピングする変数
fringe-cursor-alist(フリンジカーソルを参照)によって参照されます。
Lispプログラムでは、行に含まれる文字のいずれかにdisplayプロパティを指定することで、左右のフリンジにビットマップを直接表示することも可能です(その他の表示仕様を参照)。このような表示仕様は、次のような形式になります。
(fringe bitmap [face])
fringe は、シンボル left-fringe
または right-fringe のいずれかです。bitmap は、表示するビットマップを識別するシンボルです。オプションの face は、ビットマップの表示に使用する前景色と背景色を持つフェイスを指定します。face で指定されなかった色については、fringe
フェイスの属性が使用されます。face が省略された場合は、fringe フェイスで指定されなかった色について、default フェイスの属性を使用することを意味します。default および fringe
フェイスの属性に依存しない予測可能な結果を得るには、face
を省略せず、常に特定のフェイスを指定することを推奨します。特に、ビットマップを常に fringe
フェイスで表示させたい場合は、fringe を face として使用してください。
例えば、左フリンジに矢印を表示するには、warningフェイスを使用して、次のように記述できます。
(overlay-put
(make-overlay (point) (point))
'before-string (propertize
"x" 'display
`(left-fringe right-arrow warning)))
以下に、Emacsで定義されている標準のフリンジビットマップの一覧と、それらが現在Emacsでどのように使用されているか(fringe-indicator-alistおよびfringe-cursor-alist経由)を示します。
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 は左フリンジにオーバーレイ矢印がある場合に non-nil
となります。
window に pos が表示されない場合、値は
nil となります。window が nil である場合、それは選択中のウィンドウを表します。pos が
nil である場合、それは window
におけるポイントの値を表します。