Spec-Zone.ru › Elisp

Отложенные предупреждения

Иногда может потребоваться не показывать предупреждение во время выполнения команды, а показывать его только после завершения команды. Для этого можно использовать функцию delay-warning. Emacs автоматически откладывает все предупреждения, выданные на ранних этапах запуска, и показывает их только после обработки файлов инициализации.

Функция: delay-warning type message &optional level buffer-name

Эта функция является отложенным аналогом display-warning (см. Основы предупреждений) и вызывается с теми же аргументами. Сообщение предупреждения помещается в очередь delayed-warnings-list.

Переменная: delayed-warnings-list

Значение этой переменной — список предупреждений, которые будут показаны после завершения текущей команды. Каждый элемент должен быть списком

(type message [level [buffer-name]])

того же формата и с тем же значением, что и список аргументов display-warning. Сразу после выполнения post-command-hook (см. Обзор цикла команд) цикл команд Emacs показывает все предупреждения, указанные этой переменной, а затем устанавливает значение переменной в nil.

Программы, которым требуется дополнительно настроить механизм отложенных предупреждений, могут изменить переменную delayed-warnings-hook:

Переменная: delayed-warnings-hook

Это обычный хук, который запускается циклом команд Emacs после post-command-hook для обработки и показа отложенных предупреждений. Emacs также запускает этот хук во время запуска после загрузки файлов site-start и пользовательской инициализации (см. Сводка: последовательность действий при запуске), поскольку предупреждения, выданные до этого момента, автоматически откладываются.

По умолчанию его значение — список из двух функций:

(collapse-delayed-warnings display-delayed-warnings)

Функция collapse-delayed-warnings удаляет повторяющиеся элементы из delayed-warnings-list. Функция display-delayed-warnings по очереди вызывает display-warning для каждого элемента в delayed-warnings-list, а затем устанавливает delayed-warnings-list в nil.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Delayed-Warnings.html

Spec-Zone.ru

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