Previous: , Up: シンボルのプロパティ   [Contents][Index]


9.4.2 シンボルの標準的なプロパティ

Emacsで特別な目的のために使用されるシンボルプロパティを以下に一覧します。以下のテーブルで、“命名される関数(the named function)”と言うときは、関数名がそのシンボルであるような関数を意味します。“命名される変数(the named variable)”等の場合も同様です。

:advertised-binding

このプロパティリストは、命名される関数のドキュメントを表示する際に優先されるキーバインディングを指定する。ドキュメント内でのキーバインディングの置き換えを参照のこと。

char-table-extra-slots

値が非nilなら、それは命名される文字テーブル型の追加スロットの数を指定する。文字テーブルを参照のこと。

customized-face
face-defface-spec
saved-face
theme-face

これらのプロパティはフェイスの標準のフェイス仕様(face specs)と、フォント仕様のsaved-face、customized-face、themed-faceを記録するために使用される。これらのプロパティを直接セットしないこと。これらのプロパティはdeffaceと関連する関数により管理される。フェイスの定義を参照のこと。

customized-value
saved-value
standard-value
theme-value

これらのプロパティは、カスタマイズ可能な変数のstandard-value、saved-value、customized-value(しかし保存はされない)、themed-valueを記録するために使用される。これらのプロパティを直接セットしないこと。これらはdefcustomと関連する関数により管理される。カスタマイゼーション変数の定義を参照のこと。

definition-name

このプロパティはソースファイルのテキスト検索ではシンボルの定義を見つけるのが困難な際に、ソースコードから定義を見つけるために使用される。たとえばdefine-derived-mode (派生モードの定義を参照)によってモード固有の関数や変数が暗黙裡に定義されたのかもしれないし、Lispプログラム実行時にdefunを呼び出して関数を定義したのかもしれない(関数の定義を参照)。このようなケースや類似したケースにおいては、そのシンボルのdefinition-nameプロパティはテキスト検索によって検索可能な定義をもち、そのコードによって元のシンボルを定義するような別のシンボルであることが必要になる。define-derived-modeの例では、定義される関数および変数にたいするこのプロパティの値がモードシンボルであることが必要になる。C-h f (Help in The GNU Emacs Manualを参照)のようなEmacsのヘルプコマンドでは、そのシンボルのドキュメントを表示する*Help*バッファーのボタンを通じてシンボルの定義を表示するためにこのプロパティが使用されている。

disabled

値が非nilなら命名される関数はコマンドとして無効になる。コマンドの無効化を参照のこと。

face-documentation

値には命名されるフェイスのドキュメント文字列が格納される。これはdeffaceにより自動的にセットされる。フェイスの定義を参照のこと。

history-length

値が非nilなら、命名されるヒストリーリスト変数のミニバッファーヒストリーの最大長を指定する。ミニバッファーのヒストリーを参照のこと。

interactive-form

この値は命名される関数のインタラクティブ形式である。通常はこれを直接セットするべきではない。かわりにスペシャルフォームinteractiveを使用すること。インタラクティブな呼び出しを参照されたい。

menu-enable

この値は命名されるメニューアイテムが、メニュー内で有効であるべきか否かを決定するための式である。単純なメニューアイテムを参照のこと。

mode-class

値がspecialなら命名されるメジャーモードはspecial(特別)である。メジャーモードの慣習を参照のこと。

permanent-local

値が非nilなら命名される変数はバッファーローカル変数となり、メジャーモードの変更によって変数の値はリセットされない。バッファーローカルなバインディングの作成と削除を参照のこと。

permanent-local-hook

値が非nilなら、命名される関数はメジャーモード変更時にフック変数のローカル値から削除されない。フックのセットを参照のこと。

pure

値が非nilの場合には、名づけられた関数は純粋(pure)だとみなされる。定数の引数で呼び出された場合には、コンパイル時に評価することができる。これは実行時のエラーをコンパイル時へとシフトする。純粋ストレージ(pure storage)と混同しないこと(純粋ストレージを参照)。

risky-local-variable

値が非nilなら、命名される変数はファイルローカル変数としては危険だとみなされる。ファイルローカル変数を参照のこと。

safe-function

値が非nilなら、命名される関数は評価において一般的に安全だとみなされます。安全に関数を呼び出せるかどうかの判断を参照のこと。

safe-local-eval-function

値が非nilなら、命名される関数はファイルローカルの評価フォーム内で安全に呼び出すことができる。ファイルローカル変数を参照のこと。

safe-local-variable

この値は命名される変数にたいして、ファイルローカル値が安全かを判断する関数を指定する。ファイルローカル変数を参照のこと。この値はファイルのロード時に参照されるので、指定する関数は効率的かつ安全性判断のために理想的にはライブラリーを何もロードしない(autoload関数にしない)ようにする必要がある。

side-effect-free

nil値は命名される関数が副作用(関数とは?を参照)をもたないことを示すので、バイトコンパイラーは値が使用されない呼び出しを無視する。このプロパティの値がerror-freeなら、バイトコンパイラーはそのような呼び出しの削除すら行うかもしれない。バイトコンパイラーの最適化に加えて、このプロパティは関数の安全性を判断するためにも使用される(安全に関数を呼び出せるかどうかの判断を参照)。

undo-inhibit-region

nilの場合には、命名される関数の直後にundoが呼び出されると、undo操作をアクティブなリージョンに限定することを抑止する。アンドゥを参照のこと。

variable-documentation

nilなら、それは命名される変数のドキュメント文字列を指定する。ドキュメント文字列はdefvarと関連する関数により自動的にセットされる。フェイスの定義を参照のこと。