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

15.4.4 型キーワード

カスタマイズ型では、型名シンボルの後にキーワードと引数のペアを指定できます。使用可能なキーワードとその意味は以下の通りです。

:value default

デフォルト値を指定してください。

nil が代替値として有効な値でない場合は、:value で有効なデフォルト値を指定することが不可欠です。

これを choice 内で代替として表示されるタイプに使用すると、ユーザーがカスタマイズバッファのメニューでこの代替を選択した際に、最初に適用されるデフォルト値を指定します。

もちろん、オプションの実際の値がこの代替案に該当する場合は、defaultではなく実際の値が表示されます。

:format format-string

この文字列は、型に対応する値を表すものとしてバッファに挿入されます。format-string では、以下の ‘%’ エスケープが使用可能です:

‘%[button%]’

ボタンとしてマークされたテキスト button を表示します。:action 属性は、ユーザーがボタンを操作した際にどのような動作を行うかを指定します。その値は、ボタンが表示されるウィジェットとイベントという2つの引数を取る関数です。

動作の異なる2つのボタンを指定する方法はありません。

‘%{sample%}’

:sample-face で指定された特殊なフェイスに sample を表示します。

‘%v’

アイテムの値を代入します。値の表現方法は、アイテムの種類、および(変数の場合は)カスタマイズタイプによって異なります。

‘%d’

アイテムのドキュメント文字列を置換します。

‘%h’

‘%d’のように、ただしドキュメント文字列が複数行にわたる場合は、そのすべてを表示するか、あるいは最初の1行のみを表示するかを切り替えるボタンを追加してください。

‘%t’

ここにタグを記述してください。タグは :tag キーワードで指定します。

‘%%’

リテラル ‘%’ を表示します。

:action action

ユーザーがボタンをクリックした場合に action を実行します。

:button-face face

‘%[…%]’で表示されるボタンテキストには、フェイス face(フェイス名またはフェイス名のリスト)を使用してください。

:button-prefix prefix
:button-suffix suffix

これらは、ボタンの前後に表示するテキストを指定します。それぞれ以下のいずれかになります:

nil

テキストは挿入されません。

文字列

文字列はリテラルで挿入されます。

記号

シンボルの値が使用されます。

:tag tag

この型に対応する値(または値の一部)のタグとして、tag(文字列)を使用してください。カスタマイズインターフェース向けに分かりやすいタグを指定することは重要であり、特にrestricted-sexp型を使用する場合や、新しい型を定義する場合にはなおさらです。新しい型の定義を参照してください。

:doc doc

この型に対応するこの値(または値の一部)のドキュメント文字列として、doc を使用してください。これを機能させるには、:format に値を指定し、その値の中で ‘%d’ または ‘%h’ を使用する必要があります。

型にドキュメント文字列を指定する一般的な理由は、choice 型内部の選択肢や、他の複合型の各部分の意味について、より詳細な情報を提供するためです。

:help-echo motion-doc

widget-forward または widget-backward でこのアイテムに移動すると、エコー領域に文字列 motion-doc が表示されます。さらに、motion-doc はマウスの help-echo 文字列として使用され、実際にはヘルプ文字列を返すように評価される関数やフォームである場合があります。関数である場合は、ウィジェットという1つの引数を渡して呼び出されます。

:match function

値が型に一致するかどうかの判定方法を指定してください。対応する値 function は、ウィジェットと値の2つの引数を受け取る関数とし、値が許容される場合は non-nil を返すようにしてください。

:match-inline function

インライン値が型に一致するかどうかの判定方法を指定してください。対応する値 function は、ウィジェットとインライン値の2つの引数を受け取る関数とし、値が許容される場合は nil 以外を返すようにしてください。インライン値の詳細については、リストへのスプライシング を参照してください。

:validate function

入力用のバリデーション関数を指定してください。function はウィジェットを引数として受け取り、そのウィジェットの現在の値が当該ウィジェットにとって有効であれば nil を返す必要があります。そうでない場合は、無効なデータを含むウィジェットを返し、そのウィジェットの :error プロパティにエラー内容を説明する文字列を設定してください。

:type-error string

string は、:match 関数によって判定された、値が型に一致しない理由を示す文字列である必要があります。:match 関数が nil を返すと、ウィジェットの :error プロパティに string が設定されます。