この小節では、ewoc と node は上述の構造(抽象表示 を参照)を表し、data はデータ要素として用いられる任意の Lisp オブジェクトを表します。
これにより、ノード(したがってデータ要素)を持たない新しい ewoc が構築され、返されます。pretty-printer は、この ewoc
で使用する予定の型のデータ要素を1つの引数として受け取り、insert
を用いてそのテキスト記述をポイントに挿入する関数である必要があります(insert-before-markers は決して使用しないでください。Ewoc
パッケージの内部機構に干渉するためです)。
通常、ヘッダー、フッター、および各ノードのテキスト記述の後には改行が自動的に挿入されます。nosep が
nil 以外の場合、改行は挿入されません。これは、例えば ewoc
全体を1行で表示する場合や、pretty-printer
がそれらのノードに対して何も作用しないように設定してノードを非表示にする場合などに有用です。
ewocは、作成時に有効だったバッファにテキストを保持するため、ewoc-createを呼び出す前に目的のバッファに切り替えてください。
これにより、ewoc がテキストを保持しているバッファが返されます。
これは、ewocのヘッダーとフッターから構成されるコンスセル (header . footer) を返します。
これにより、ewoc のヘッダーとフッターが、それぞれ文字列 header と footer に設定されます。
これらはdataをカプセル化した新しいノードを追加し、それぞれewocのノードチェーンの先頭または末尾に配置します。
これらは、dataをカプセル化した新しいノードを追加し、それぞれnodeの前後でewocに追加します。
これは、0始まりのインデックス n で見つかった ewoc
内のノードを返します。負の n は末尾からのカウントを意味します。n が範囲外の場合、ewoc-nth は nil を返します。
これは node でカプセル化されたデータを抽出して返します。
これにより、node でカプセル化されたデータが data に設定されます。
これにより、ewoc(指定がある場合はpos)の中で点を含むノードを特定し、そのノードを返します。ewocにノードがない場合は、nilを返します。posが最初のノードより前にある場合は最初のノードを、posが最後のノードより後にある場合は最後のノードを返します。オプションの第3引数guessには、posの近くにある可能性が高いノードを指定します。これにより結果が変わるわけではありませんが、関数の実行速度が向上します。
これは node の開始位置を返します。
これらの関数は、それぞれ ewoc の直前または直後の arg 番目のノードへ移動します。ewoc-goto-prev
は、すでに最初のノードにある場合や ewoc が空の場合は移動せず、一方で ewoc-goto-next は最後のノードを通り過ぎて nil を返します。この特殊なケースを除き、これらの関数は移動先のノードを返します。
これにより、point は ewoc 内の node の先頭に移動します。
この関数は ewoc のテキストを再生成します。ヘッダーとフッターの間にあるテキスト、すなわちすべてのデータ要素の表現を削除し、その後、各ノードに対してプリティプリンタ関数を順番に一つずつ呼び出すことで動作します。
これはewoc-refreshと同様ですが、セット全体ではなく、ewoc内のnodesのみが更新されます。
これにより、ewoc から nodes 内の各ノードが削除されます。
これは、ewoc 内の各データ要素に対して predicate を呼び出し、predicate が nil を返すノードを削除します。任意の args は predicate に渡されます。
これは、ewoc 内の各データ要素に対して predicate を呼び出し、predicate が nil 以外を返す要素のリストを返します。リスト内の要素はバッファと同じ順序で並びます。任意の args は predicate に渡されます。
これは、ewoc 内の各データ要素に対して map-function を呼び出し、map-function が
nil 以外を返すノードを更新します。任意の args
は map-function に渡されます。