fix: Mark transient hooks as permanent-local
This commit is contained in:
@@ -51,13 +51,15 @@
|
||||
(defun ,hook-name (&rest _)
|
||||
"Transient hook defined by `with-transient-after'."
|
||||
(cond ((functionp ,hook-or-function*)
|
||||
(advice-remove ,hook-or-function* (function ,hook-name)))
|
||||
(advice-remove ,hook-or-function* #',hook-name))
|
||||
((symbolp ,hook-or-function*)
|
||||
(remove-hook ,hook-or-function* (function ,hook-name))))
|
||||
(remove-hook ,hook-or-function* #',hook-name)))
|
||||
,@forms)
|
||||
(cond ((functionp ,hook-or-function*)
|
||||
(advice-add ,hook-or-function* :before (function ,hook-name)))
|
||||
(advice-add ,hook-or-function* :before #',hook-name))
|
||||
((symbolp ,hook-or-function*)
|
||||
(add-hook ,hook-or-function* (function ,hook-name)))))))
|
||||
;; https://www.gnu.org/software/emacs/manual/html_node/elisp/Setting-Hooks.html#Setting-Hooks-1
|
||||
(put ',hook-name 'permanent-local-hook t)
|
||||
(add-hook ,hook-or-function* #',hook-name))))))
|
||||
|
||||
(provide 'syd-prelude)
|
||||
|
||||
Reference in New Issue
Block a user