Запуск хуков
В этом разделе мы документируем функцию run-hooks, используемую для запуска обычного хука. Мы также документируем функции для запуска различных видов аномальных хуков.
- Функция: run-hooks &rest hookvars
-
Эта функция принимает один или несколько имен переменных обычных хуков в качестве аргументов и выполняет каждый хук по очереди. Каждый аргумент должен быть символом, который является переменной обычного хука. Эти аргументы обрабатываются в указанном порядке.
Если переменная хука имеет значение, отличное от
nilзначения, это значение должно быть списком функций.run-hooksвызывает все функции по одной, без аргументов.Значение переменной хука также может быть единственной функцией — либо выражением лямбда, либо символом с определением функции — которую
run-hooksвызывает. Но такое использование устарело.Если переменная хука локальна для буфера, используется локальная переменная буфера вместо глобальной. Однако, если локальная переменная буфера содержит элемент
t, глобальная переменная хука также будет выполнена.
- Функция: run-hook-with-args hook &rest args
Эта функция выполняет аномальный хук, вызывая все функции хука в hook, передавая каждой из них аргументы args.
- Функция: run-hook-with-args-until-failure hook &rest args
Эта функция выполняет аномальный хук, вызывая каждую функцию хука по очереди, останавливаясь, если одна из них завершается неудачно, возвращая
nil. Каждая функция хука получает аргументы args. Если эта функция останавливается из-за того, что одна из функций хука завершается неудачно, она возвращаетnil; в противном случае она возвращает значение, отличное отnil.
- Функция: run-hook-with-args-until-success hook &rest args
Эта функция выполняет аномальный хук, вызывая каждую функцию хука, останавливаясь, если одна из них завершается успешно, вернув значение, отличное от
nil. Каждая функция хука получает аргументы args. Если эта функция останавливается, потому что одна из функций хука возвращает значение, отличное отnil, она возвращает это значение; в противном случае она возвращаетnil.
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/Running-Hooks.html