Какой файл определил определенный символ
- Функция: symbol-file символ &опциональный тип
-
Эта функция возвращает имя файла, в котором был определен символ. Если тип равен
nil, то любой тип определения приемлем. Если тип равенdefun,defvar, илиdefface, это указывает на определение функции, переменной или лица соответственно.Значение обычно является полным именем файла. Оно также может быть
nil, если определение не связано с каким-либо файлом. Если символ указывает на функцию с автозагрузкой, значение может быть относительным именем файла без расширения.
В основе symbol-file лежат данные в переменной load-history.
- Переменная: load-history
-
Значение этой переменной — список ассоциаций, связывающий имена загруженных файлов библиотек с именами функций и переменных, которые они определили, а также с функциями, которые они предоставили или потребовали.
Каждый элемент в этом списке описывает одну загруженную библиотеку (включая библиотеки, предварительно загруженные при запуске). Это список, CAR которого — полное имя файла библиотеки (строка). Остальные элементы списка имеют следующие формы:
varСимвол переменная был определен как переменная.
(defun . fun)Функция функция была определена.
(t . fun)Функция функция ранее была автозагрузкой, прежде чем эта библиотека переопределила её как функцию. Следующий элемент всегда
(defun . fun), который представляет определение функция как функции.(autoload . fun)Функция функция была определена как автозагрузка.
(defface . face)Лицо лицо было определено.
(require . feature)Было потребовано свойство свойство.
(provide . feature)Было предоставлено свойство свойство.
(cl-defmethod method specializers)Именованный метод был определен с помощью
cl-defmethod, со специализаторами как его специализаторами.(define-type . type)Тип тип был определен.
Значение
load-historyможет иметь один элемент, CAR которогоnil. Этот элемент описывает определения, сделанные сeval-bufferв буфере, который не посещает файл.
Команда eval-region обновляет load-history, но делает это, добавляя определенные символы к элементу для посещаемого файла, а не заменяя этот элемент. См. Вычисление.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Where-Defined.html