前: Overlay Properties, 上: Overlays


38.8.2 オーバレイの管理

本節では、オーバレイを作成、削除、移動したり、 それらの内容を調べる関数について述べます。

— 機能: make-overlay start end &optional buffer front-advance rear-advance

この関数は、バッファbufferに属する startからendまでを覆うオーバレイを作成しそれを返す。 startendのどちらもバッファ内位置を指定する 整数かマーカであること。 bufferを省略すると、カレントバッファにオーバレイを作成する。

引数front-advancerear-advanceは、 オーバレイの開始位置と終了位置における挿入型を指定する。 see Marker Insertion Types

— 機能: overlay-start overlay

この関数は、オーバレイoverlayの開始位置を整数で返す。

— 機能: overlay-end overlay

この関数は、オーバレイoverlayの終了位置を整数で返す。

— 機能: overlay-buffer overlay

この関数は、オーバレイoverlayが属するバッファを返す。

— 機能: delete-overlay overlay

この関数は、オーバレイoverlayを削除する。 Lispオブジェクトとしてはオーバレイは存在し続けるが、 それが属したバッファとの対応付けは消失し、 表示上の効果もなくなる。

削除したオーバレイは恒久的に無意味ではない。 move-overlayを呼び出して新たなバッファ内位置をそれに与えられる。

— 機能: move-overlay overlay start end &optional buffer

この関数は、オーバレイoverlayをバッファbufferに移し、 startからendを覆うようにする。 startendのどちらもバッファ内位置を指定し、 整数かマーカである。 bufferを省略すると、オーバレイは同じバッファに留まる。

戻り値はoverlayである。

これは、オーバレイの端を変更する唯一の正しい方法である。 オーバレイのマーカを手で修正しようとしないこと。 他の重要なデータ構造を更新しそこない、 いくつかのオーバレイを『失う』ことにもなりかねない。

— 機能: overlays-at pos

この関数は、カレントバッファの位置posを覆うすべての オーバレイのリストを返す。 このリスト内の順番に意味はない。 オーバレイが位置posかそのまえで始まり、かつ、 位置posかそのうしろで終るときに、 オーバレイは位置posを覆う。

— 機能: overlays-in beg end

この関数は、begからendまでの領域と 重なり合っているすべてのオーバレイのリストを返す。 『重なり合っている』とは、 少なくとも1文字がオーバレイに覆われていて、かつ、 その文字が指定された領域に入っていることを意味する。 しかし、空のオーバレイであっても それがbegにあるかbegendのあいだにあれば、 空のオーバレイも結果に含まれる。

— 機能: next-overlay-change pos

この関数は、位置posのうしろにある オーバレイのつぎの開始位置か終了位置を返す。

— 機能: previous-overlay-change pos

この関数は、位置posのまえにある オーバレイのまえの開始位置か終了位置を返す。