Next: , Previous: , Up: Customization Types   [Contents][Index]


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’と同様だが、ドキュメント文字列が複数行なら、ドキュメント文字列全体か最初の行だけかを制御するボタンを追加する。

%t

その位置でタグに置き換える。:tagキーワードでタグを指定する。

%%

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

:action action

ユーザーがボタンをクリックしたらactionを実行する。

:button-face face

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

:button-prefix prefix
:button-suffix suffix

これらはボタンの前か後に表示されるテキストを指定する。以下が指定できる:

nil

テキストは挿入されない。

文字列

その文字列がリテラルに挿入される。

シンボル

そのシンボルの値が使用される。

:tag tag

この型に対応する値(または値の一部)にたいするタグとしてtag(文字列)を使用する。

:doc doc

この型に対応する値(か値の一部)にたいするドキュメント文字列としてdocを使用する。これが機能するためには:formatにたいする値を指定して、その値にたいして‘%d’か‘%h’を使用しなければならない。

ある型にたいしてドキュメント文字列を指定するのはchoice内の選択肢の型や、他の複合型の一部について情報を提供するのが通常の理由。

:help-echo motion-doc

widget-forwardwidget-backwardでこのアイテムに移動したときに、エコーエリアに文字列motion-docを表示する。さらにマウスのhelp-echo文字列としてmotion-docが使用され、これには実際には」ヘルプ文字列を生成するために評価される関数かフォームを指定できる。もし関数ならそれは1つの引数(そのウィジェット)で呼び出される。

:match function

値がその型にマッチするか判断する方法を指定する。対応する値functionは2つの引数(ウィジェットと値)を受け取る関数であり、値が適切なら非nilをリターンすること。

:match-inline function

インライン値がその型にマッチするか判断する方法を指定する。対応する値functionは2つの引数(ウィジェットとインライン値)を受け取る関数であり、値が適切なら非nilをリターンすること。インライン値に関する詳細な情報はSplicing into Listsを参照のこと。

:validate function

入力にたいして検証を行う関数を指定する。functionは引数としてウィジェットを受け取り、そのウィジェットのカレント値がウィジェットにたいして有効ならnilをリターンすること。それ以外なら無効なデータを含むウィジェットをリターンして、そのウィジェットの:errorプロパティに、そのエラーを記述する文字列をセットすること。