Отложенные предупреждения
Иногда может потребоваться не показывать предупреждение во время выполнения команды, а показывать его только после завершения команды. Для этого можно использовать функцию 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