Spec-Zone.ru › Elisp

Какой файл определил определенный символ

Функция: 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API