Next: Defining New Types, Previous: Splicing into Lists, Up: Customization Types [Contents][Index]
カスタマイゼーション型内の型名シンボルの後にキーワード/引数ペアーを指定できます。以下は使用できるキーワードとそれらの意味です:
:value default
デフォルト値を提供する。
その候補にたいしてnil
が有効な値でなければ、:value
に有効なデフォルトを指定することが必須となる。
choice
の内部の選択肢として出現する型にたいしてこれを使用するなら、ユーザーがカスタマイゼーションバッファー内のメニューでその選択肢を選択したときに使用するデフォルト値を最初に指定する。
もちろんオプションの実際の値がこの選択肢に適合するなら、defaultではなく実際の値が表示される。
:format format-string
この文字列はその型に対応する値を記述するために、バッファーに挿入される。format-string内では以下の‘%’エスケープが利用できる:
ボタンとしてマークされたテキストbuttonを表示する。:action
属性はユーザーがそれを呼び出したときに、そのボタンが何を行うか指定する。この属性の値は2つの引数
— ボタンが表示されるウィジェットとイベント — を受け取る関数である。
異なるアクションを行う2つの異なるボタンを指定する方法はない。
:sample-face
により指定されたスペシャルフェイス内のsampleを表示する。
そのアイテムの値を代替えする。その値がどのように表示されるかはアイテムの種類と、(カスタマイゼーション型にたいしては)カスタマイゼーション型にに依存する。
そのアイテムのドキュメント文字列を代替えする。
‘%d’と同様だが、ドキュメント文字列が複数行なら、ドキュメント文字列全体か最初の行だけかを制御するボタンを追加する。
その位置でタグに置き換える。: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-forward
やwidget-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
プロパティに、そのエラーを記述する文字列をセットすること。
:type-error string
stringは値がなぜ:match
関数で判定されるような値にマッチしないかを説明する文字列であること。:match
関数がnil
をリターンした際には、ウィジェットの:error
プロパティがstringにセットされる。