21.6.6 補完変数

補完のデフォルト動作を変更するために使用される変数がいくつかあります。

User Option: completion-styles

この変数の値は補完を行うために使用される補完スタイル(シンボル)である。補完スタイル(completion style)とは、補完を生成するためのルールセットのこと。このリストにあるシンボルはそれぞれ、completion-styles-alist内に対応するエントリーをもたなければならない。

Variable: completion-styles-alist

この変数には補完スタイルのリストが格納される。リスト内の各要素は以下の形式をもつ

(style try-completion all-completions doc)

ここでstyleは補完スタイルの名前(シンボル)であり、そのスタイルを参照するために変数completion-styles内で使用されるかもしれない。try-completionは補完を行なう関数で、all-completions補完をリストする関数、docは補完スタイルを説明する文字列である。

関数try-completionall-completionsstringcollectionpredicatepointの4つの引数をとる。引数stringcollectionpredicateの意味はtry-completion (基本的な補完関数を参照)のときと同様。引数pointstring内のポイント位置。各関数は自身の処理を行ったら非nil、行わなかった場合(たとえば補完スタイルに一致するようにstringを行う方法がない場合)はnilをリターンする。

ユーザーがminibuffer-complete (補完を行うミニバッファーコマンドを参照)のような補完コマンドを呼び出すと、Emacsはcompletion-stylesに最初にリストされたスタイルを探して、そのスタイルのtry-completion関数を呼び出す。この関数がnilをリターンしたら、Emacsは次にリストされた補完スタイルに移動してそのスタイルのtry-completion関数を呼び出すといったように、try-completion関数の1つが補完の処理に成功して非nil値をリターンするまで順次これを行なう。同様の手順はall-completions関数を通じて補完のリストにも行われる。

利用できる補完スタイルについてはCompletion Styles in The GNU Emacs Manualを参照のこと。

User Option: completion-category-overrides

この変数は特別な補完スタイルと、特定の種類のテキスト補完時に使用するその他の補完動作を指定する。この変数の値は(category . alist)という形式の要素をもつようなalistである。categoryは何が補完されるかを記述するシンボルで、現在のところカテゴリーにbufferfileunicode-nameが定義されているが、これに特化した補完関数(プログラムされた補完を参照)を通じて他のカテゴリーを定義できる。alistはそのカテゴリーにたいして補完がどのように振る舞うべきかを記述する連想リスト。alistのキーとして以下がサポートされる:

styles

値は補完スタイル(シンボル)のリスト。

cycle

値はそのカテゴリーにたいするcompletion-cycle-threshold (Completion Options in The GNU Emacs Manualを参照)の値。

cycle-sort-function

循環する際にエントリーをソートする関数。

display-sort-function

この関数は*Completions*バッファー内のエントリーをソートする。値にnilを指定するとメタデータから取得したソート関数、それもnilならcompletions-sortへフォールバックすることを意味する。identityなら元の順のまま何もソートせず、それ以外の値の場合にはcompletions-sortで使用されている値以外の値を指定できる(Completion Options in The GNU Emacs Manualを参照)。

group-function

グループ補完のための関数。

annotation-function

補完に注釈を加えるための関数。

affixation-function

補完にプレフィクスまたはサフィックスを追加するための関数。

メタデータエントリーの完全なリストについてはプログラムされた補完を参照してください。

Variable: completion-extra-properties

この変数はカレント補完コマンドの特別なプロパティの指定に使用される。この変数は補完に特化したコマンドによりletバインドされることを意図している。値はプロパティ/値ペアーのリスト。以下のプロパティがサポートされる:

:category

値は補完関数が補完を試みているテキストの種類を説明するシンボル。シンボルが上述のcompletion-category-overrides内のキーの1つにマッチする場合、通常の補完動作はオーバーライドされる。補完変数を参照のこと。

:annotation-function

値は補完バッファー内に注釈(annotation)を加える関数。この関数は引数completionを1つ受け取りnil、または補完の隣に表示する文字列をリターンしなければならない。この関数が自身で注釈サフィックス文字列にフェイスをputしなければ、その文字列にはデフォルトでcompletions-annotationsフェイスが追加される。

:affixation-function

値は補完にプレフィックスとサフィックスを追加する関数であること。この関数は単一の引数として補完リストを受け取り、注釈付きの補完リストをリターンすること。リターンされるリストは補完、プレフィックス文字列、サフィックス文字列の3要素からなるリストを要素とするリストでなければならない。この関数は:annotation-functionより優先される。

:group-function

グループ補完のための関数。

:display-sort-function

この関数は*Completions*バッファー内のエントリーをソートする。

:cycle-sort-function

循環する際にエントリーをソートする関数。

:exit-function

値は補完を行った後に実行する関数。この関数は2つの引数stringstatusを受け取る。stringは補完されたフィールドのテキストで、statusは行われた操作の種類を示す。操作の種類はテキストの補完が完了したならfinished、それ以上補完できないが補完が完了していなければsole、有効な補完だがさらに補完できるときはexactとなる。


This page has generated for branch:work/emacs-30_69b16e5c63840479270d32f58daea923fe725b90, commit:5e3f74b56ff47b5bcef2526c70f53f749bbd45f6 to check Japanese translation.