Next: , Up: 抽象的なディスプレー   [Contents][Index]


40.20.1 抽象ディスプレーの関数

このセクションでは、ewocnodeは上述(抽象的なディスプレーを参照)の構造体を、dataはデータ要素として使用される任意のLispオブジェクトを意味します。

Function: ewoc-create pretty-printer &optional header footer nosep

これはノード(とデータ要素)をもたない新たなewocを構築してリターンする。pretty-printerは1つの引数を受け取る関数であること。この引数は当該ewoc内で使用を計画する類のデータ要素であり、insertを使用してポイント位置にそのテキスト記述を挿入する(Ewocパッケージの内部的メカニズムと干渉するためにinsert-before-markersは決して使用しない)。

ヘッダー、フッター、およびすべてのノードのテキスト記述の後には、通常は自動的に改行が挿入される。nosepが非nilなら改行は何も挿入されない。これはewoc全体を単一行に表示したり、これらのノードにたいして何も行わないようにpretty-printerをアレンジすることによりノードを不可視にするために有用かもしれない。

ewocは作成時にカレントだったバッファー内のテキストを保守するので、ewoc-create呼び出し前に意図するバッファーへ切り替えること。

Function: ewoc-buffer ewoc

これは、ewocがそのテキストを保守するバッファーをリターンする。

Function: ewoc-get-hf ewoc

これはewocのヘッダーとフッターから作成されたコンスセル(header . footer)をリターンする。

Function: ewoc-set-hf ewoc header footer

これはewocのヘッダーとフッターに文字列headerfooterをセットする。

Function: ewoc-enter-first ewoc data
Function: ewoc-enter-last ewoc data

これらはそれぞれdataを新たなノードにカプセル化して、それをewocのチェーンノードの先頭または終端に配置する。

Function: ewoc-enter-before ewoc node data
Function: ewoc-enter-after ewoc node data

これらはそれぞれdataを新たなノードにカプセル化して、それをewocnodeの前または後に追加する。

Function: ewoc-prev ewoc node
Function: ewoc-next ewoc node

これらはそれぞれewoc内のnodeの前または次のノードをリターンする。

Function: ewoc-nth ewoc n

これはewoc内で0基準のインデックスnで見つかったノードをリターンする。負のnは終端から数えることを意味する。nが範囲外ならewoc-nthnilをリターンする。

Function: ewoc-data node

これはnodeにカプセル化されたデータを抽出してリターンする。

Function: ewoc-set-data node data

これはnodeにカプセル化されるデータとしてdataをセットする。

Function: ewoc-locate ewoc &optional pos guess

これはポイント(指定された場合はpos)を含むewoc内のノードを判断して、そのノードをリターンする。ewocがノードをもたなければ、nilをリターンする。posが最初のノードの前なら最初のノード、最後のノードの後なら最後のノードをリターンする。オプションの3つ目の引数guessは、pos近傍にあると思われるノードであること。これは結果を変更しないが、関数の実行を高速にする。

Function: ewoc-location node

これはnodeの開始位置をリターンする。

Function: ewoc-goto-prev ewoc arg
Function: ewoc-goto-next ewoc arg

これらはそれぞれewoc内の前または次のarg番目のノードにポイントを移動する。すでに最初のノードにポイントがある場合、またはewocが空の場合にはewoc-goto-prevは移動しない。またewoc-goto-nextが最後のノードを超えて移動すると結果はnil。この特殊なケースを除き、これらの関数は移動先のノードをリターンする。

Function: ewoc-goto-node ewoc node

これはewoc内のnodeの開始にポイントを移動する。

Function: ewoc-refresh ewoc

この関数はewocのテキストを再生成する。これはヘッダーとフッターの間のテキスト、すなわちすべてのデータ要素の表現を削除して、各ノードにたいして1つずつ順にpretty-printer関数を呼び出すことによりすることにより機能する。

Function: ewoc-invalidate ewoc &rest nodes

これはewoc-refreshと似ているが、ewoc内のノードセット全体ではなくnodesだけを対象とする点が異なる。

Function: ewoc-delete ewoc &rest nodes

これはewocからnodes内の各要素を削除する。

Function: ewoc-filter ewoc predicate &rest args

これはewoc内の各データ要素にたいしてpredicateを呼び出して、predicatenilをリターンしたノードを削除する。任意のargspredicateに渡すことができる。

Function: ewoc-collect ewoc predicate &rest args

これはewoc内の各データ要素にたいしてpredicateを呼び出して、predicateが非nilをリターンしたノードのリストをリターンする。リスト内の要素はバッファー内での順序になる。任意のargspredicateに渡すことができる。

Function: ewoc-map map-function ewoc &rest args

これはewoc内の各データ要素にたいしてmap-functionを呼び出して、map-functionが非nilをリターンしたノードを更新する。任意のargsmap-functionに渡すことができる。


Next: 抽象ディスプレーの例, Up: 抽象的なディスプレー   [Contents][Index]