GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Abstract-Display-Functions.html ・ emacs-doc.conao3.com

42.21.1 抽象表示関数

この小節では、ewoc と node は上述の構造(抽象表示 を参照)を表し、data はデータ要素として用いられる任意の Lisp オブジェクトを表します。

関数: ewoc-create pretty-printer &optional header footer nosep

これにより、ノード(したがってデータ要素)を持たない新しい ewoc が構築され、返されます。pretty-printer は、この ewoc で使用する予定の型のデータ要素を1つの引数として受け取り、insert を用いてそのテキスト記述をポイントに挿入する関数である必要があります(insert-before-markers は決して使用しないでください。Ewoc パッケージの内部機構に干渉するためです)。

通常、ヘッダー、フッター、および各ノードのテキスト記述の後には改行が自動的に挿入されます。nosep が nil 以外の場合、改行は挿入されません。これは、例えば ewoc 全体を1行で表示する場合や、pretty-printer がそれらのノードに対して何も作用しないように設定してノードを非表示にする場合などに有用です。

ewocは、作成時に有効だったバッファにテキストを保持するため、ewoc-createを呼び出す前に目的のバッファに切り替えてください。

関数: ewoc-buffer ewoc

これにより、ewoc がテキストを保持しているバッファが返されます。

関数: ewoc-get-hf ewoc

これは、ewocのヘッダーとフッターから構成されるコンスセル (header . footer) を返します。

関数: ewoc-set-hf ewoc header footer

これにより、ewoc のヘッダーとフッターが、それぞれ文字列 header と footer に設定されます。

関数: ewoc-enter-first ewoc data
関数: ewoc-enter-last ewoc data

これらはdataをカプセル化した新しいノードを追加し、それぞれewocのノードチェーンの先頭または末尾に配置します。

関数: ewoc-enter-before ewoc node data
関数: ewoc-enter-after ewoc node data

これらは、dataをカプセル化した新しいノードを追加し、それぞれnodeの前後でewocに追加します。

関数: ewoc-prev ewoc node
関数: ewoc-next ewoc node

これらは、それぞれ ewoc における node の直前のノードと次のノードを返します。

関数: ewoc-nth ewoc n

これは、0始まりのインデックス n で見つかった ewoc 内のノードを返します。負の n は末尾からのカウントを意味します。n が範囲外の場合、ewoc-nth は nil を返します。

関数: ewoc-data node

これは node でカプセル化されたデータを抽出して返します。

関数: ewoc-set-data node data

これにより、node でカプセル化されたデータが data に設定されます。

関数: ewoc-locate ewoc &optional pos guess

これにより、ewoc(指定がある場合はpos)の中で点を含むノードを特定し、そのノードを返します。ewocにノードがない場合は、nilを返します。posが最初のノードより前にある場合は最初のノードを、posが最後のノードより後にある場合は最後のノードを返します。オプションの第3引数guessには、posの近くにある可能性が高いノードを指定します。これにより結果が変わるわけではありませんが、関数の実行速度が向上します。

関数: ewoc-location node

これは node の開始位置を返します。

関数: ewoc-goto-prev ewoc arg
関数: ewoc-goto-next ewoc arg

これらの関数は、それぞれ ewoc の直前または直後の arg 番目のノードへ移動します。ewoc-goto-prev は、すでに最初のノードにある場合や ewoc が空の場合は移動せず、一方で ewoc-goto-next は最後のノードを通り過ぎて nil を返します。この特殊なケースを除き、これらの関数は移動先のノードを返します。

関数: ewoc-goto-node ewoc node

これにより、point は ewoc 内の node の先頭に移動します。

関数: ewoc-refresh ewoc

この関数は ewoc のテキストを再生成します。ヘッダーとフッターの間にあるテキスト、すなわちすべてのデータ要素の表現を削除し、その後、各ノードに対してプリティプリンタ関数を順番に一つずつ呼び出すことで動作します。

関数: ewoc-invalidate ewoc &rest nodes

これはewoc-refreshと同様ですが、セット全体ではなく、ewoc内のnodesのみが更新されます。

関数: ewoc-delete ewoc &rest nodes

これにより、ewoc から nodes 内の各ノードが削除されます。

関数: ewoc-filter ewoc predicate &rest args

これは、ewoc 内の各データ要素に対して predicate を呼び出し、predicate が nil を返すノードを削除します。任意の args は predicate に渡されます。

関数: ewoc-collect ewoc predicate &rest args

これは、ewoc 内の各データ要素に対して predicate を呼び出し、predicate が nil 以外を返す要素のリストを返します。リスト内の要素はバッファと同じ順序で並びます。任意の args は predicate に渡されます。

関数: ewoc-map map-function ewoc &rest args

これは、ewoc 内の各データ要素に対して map-function を呼び出し、map-function が nil 以外を返すノードを更新します。任意の args は map-function に渡されます。