Next: , Previous: , Up: ロード   [Contents][Index]


16.8 どのファイルで特定のシンボルが定義されているか

Function: symbol-file symbol &optional type

この関数はsymbolを定義しているファイルの名前をリターンする。typenilなら、どのようなタイプの定義も受け入れる。typedefunなら関数定義、defvarは変数定義、deffaceはフェイス定義だけを指定する。

値は通常は絶対ファイル名である。定義がどのファイルにも関係しなければnilになることもある。symbolがオートロード関数を指定するなら、値が拡張子なしの相対ファイル名になることもある。

symbol-fileは変数load-historyの値にもとづく。

Variable: load-history

この変数の値はロードされたライブラリーファイルの名前を、それらが定義する関数と変数の名前、およびそれらがプロバイドまたはリクワイアするフィーチャに関連付けるalistである。

このalist内の各要素は、1つのロード済みライブラリー(スタートアップ時にプリロードされたライブラリーを含む)を記述する。要素はCARがライブラリーの絶対ファイル名(文字列)であるようなリストである。残りのリスト要素は以下の形式をもつ:

var

シンボルvarが変数として定義された。

(defun . fun)

関数funが定義された。

(t . fun)

関数funは、このライブラリーが関数として再定義される前はautoloadだった。後続する要素は常に(defun . fun)であり、これはfunを関数として定義することを表す。

(autoload . fun)

関数funはautoloadとして定義された。

(defface . face)

フェイスfaceが定義された。

(require . feature)

フィーチャfeatureがリクワイアされた。

(provide . feature)

フィーチャfeatureがプロバイドされた。

(cl-defmethod method specializers)

cl-defmethodを使用してスペシャライザーspecializersとともにmethodという名前が定義された。

(define-type . type)

typeが定義された。

load-historyの値には、CARnilであるような要素が1つ含まれるかもしれない。この要素はファイルをvisitしていないバッファーでeval-bufferにより作成された定義を記述する。

コマンドeval-regionload-historyを更新しますが、要素を置き換えずに、visitされているファイルの要素にたいして定義されたシンボルを追加します。evalについてを参照してください。