オーバレイ属性はある意味でテキスト属性に似ていて、 どちらの属性でも文字の表示方法を変更できます。 しかし、多くの点で異なります。 テキスト属性は、テキストの一部であるとみなされますが、 オーバレイはテキストの一部とはみなしません。 したがって、さまざまなバッファや文字列のあいだでテキストをコピーしても テキスト属性は保存されますが、オーバレイは保存されません。 バッファ内のテキスト属性を変更するとバッファを変更済みと印を付けますが、 オーバレイを移動したりその属性を変更しても バッファの変更とは考えません。 テキスト属性の変更と異なり、 オーバレイの変更はバッファのアンドゥリストには記録されません。 比較のためにSee Text Properties。
priority
priority
の値の大きなものが他に優先し、
そのフェイス属性が他の低い順位の属性のフェイス属性に優先する。
現在、すべてのオーバレイ属性はテキスト属性に優先する。
負の優先順位の意味を決めかねているので、負の優先順位は避けてほしい。
window
window
がnil
以外であると、
オーバレイをそのウィンドウだけに適用する。
category
category
があると、
それをオーバレイのカテゴリ(category)と呼ぶ。
これはシンボルであること。
シンボルの属性がオーバレイの属性のデフォルトの役割を果たす。
face
属性値がリストであると、その要素は、
(foreground-color .
color-name)
か
(background-color .
color-name)
の形でもよい。
これらの要素は、前景色だけや背景色だけを指定する。
したがって、使用する各色を表すフェイスを作成する必要はない。
mouse-face
face
のかわりに使われる。
modification-hooks
フック関数は、各変更の前後に呼び出される。 関数が受け取った情報を保存し呼び出しごとに比較すれば バッファテキストにどのような変更が行われたかを正確に判定できる。
変更前に呼ばれるときには、各関数は4つの引数を受け取る。
オーバレイ、nil
、変更対象のテキスト範囲の先頭と末尾である。
変更後に呼ばれるときには、各関数は5つの引数を受け取る。
オーバレイ、t
、変更済みのテキスト範囲の先頭と末尾、
その範囲の変更前のテキストの長さである。
(挿入では変更前の長さはゼロである。
削除では変更前の長さは削除された文字数であり、
変更後の先頭位置と末尾位置は同じである。)
insert-in-front-hooks
modification-hooks
の関数群と同じである。
insert-behind-hooks
modification-hooks
の関数群と同じである。
invisible
invisible
は、オーバレイ内のテキストを不可視にする。
つまり、それらはスクリーン上に現れない。
詳しくは、see Invisible Text。
intangible
intangible
は、オーバレイにおいて
テキスト属性intangible
と同様に働く。
詳しくは、see Special Properties。
isearch-open-invisible
isearch-open-invisible-temporary
before-string
after-string
evaporate
nil
以外であると、
オーバレイが空に(つまり覆う文字がなく)なると、
自動的にオーバレイを削除する。
local-map
nil
以外であると、当該部分のテキストに対する
キーマップを指定する。
ポイントの直後の文字がオーバレイに入っていると、
属性の値はバッファローカルなキーマップに置き換わる。
see Active Keymaps。
つぎは、オーバレイの属性を読み書きするための関数です。
この関数は、オーバレイoverlayに記録されている 属性propの値をあれば返す。 overlayにそのような属性に対する値が記録されていなくても、 属性
category
がありそれがシンボルであれば、 そのシンボルの属性propを使う。 さもなければ値はnil
である。
与えられた文字のオーバレイ属性とテキスト属性の両方を調べる
関数get-char-property
も参照してください。
See Examining Properties。