Previous: シンボルのプロパティへのアクセス, Up: シンボルのプロパティ [Contents][Index]
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
なら、バイトコンパイラーはそのような呼び出しの削除すら行うかもしれない。バイトコンパイラーの最適化に加えて、このプロパティは関数の安全性を判断するためにも使用される(安全に関数を呼び出せるかどうかの判断を参照)。
important-return-value
¶非nil
値は命名される関数のリターン値を呼び出し側のコードが使用しないことに関して、バイトコンパイラーが警告を出すようにする。これはリターン値が使用されないのはおそらく間違いだとだと考えられるような関数にたいして役に立つ。
undo-inhibit-region
非nil
の場合には、命名される関数の直後にundo
が呼び出されると、undo
操作をアクティブなリージョンに限定することを抑止する。アンドゥを参照のこと。
variable-documentation
非nil
なら、それは命名される変数のドキュメント文字列を指定する。ドキュメント文字列はdefvar
と関連する関数により自動的にセットされる。フェイスの定義を参照のこと。