yas-dont-activate is a hook

* yasnippet.el (yas-dont-activate-functions): Rename from yas-dont-activate.
(yas-minor-mode-on): Use run-hook-with-args-until-success instead of
funcall.
This commit is contained in:
Stefan Monnier 2016-04-10 10:14:56 -04:00 committed by Noam Postavsky
parent 87710827e9
commit bd30a30d88

View File

@ -827,21 +827,20 @@ activate snippets associated with that mode."
(remove mode (remove mode
yas--extra-modes))) yas--extra-modes)))
(defvar yas-dont-activate '(minibufferp) (define-obsolete-variable-alias 'yas-dont-activate
"If non-nil don't let `yas-global-mode' affect some buffers. 'yas-dont-activate-functions "0.9.2")
(defvar yas-dont-activate-functions (list #'minibufferp)
"Special hook to control which buffers `yas-global-mode' affects.
Functions are called with no argument, and should return non-nil to prevent
`yas-global-mode' from enabling yasnippet in this buffer.
If a function of zero arguments, then its result is used. In Emacsen < 24, this variable is buffer-local. Because
If a list of functions, then all functions must return nil to
activate yas for this buffer.
In Emacsen <= 23, this variable is buffer-local. Because
`yas-minor-mode-on' is called by `yas-global-mode' after `yas-minor-mode-on' is called by `yas-global-mode' after
executing the buffer's major mode hook, setting this variable executing the buffer's major mode hook, setting this variable
there is an effective way to define exceptions to the \"global\" there is an effective way to define exceptions to the \"global\"
activation behaviour. activation behaviour.
In Emacsen > 23, only the global value is used. To define In Emacsen >= 24, only the global value is used. To define
per-mode exceptions to the \"global\" activation behaviour, call per-mode exceptions to the \"global\" activation behaviour, call
`yas-minor-mode' with a negative argument directily in the major `yas-minor-mode' with a negative argument directily in the major
mode's hook.") mode's hook.")
@ -853,14 +852,14 @@ mode's hook.")
(defun yas-minor-mode-on () (defun yas-minor-mode-on ()
"Turn on YASnippet minor mode. "Turn on YASnippet minor mode.
Honour `yas-dont-activate', which see." Honour `yas-dont-activate-functions', which see."
(interactive) (interactive)
;; Check `yas-dont-activate' (unless (or
(unless (cond ((functionp yas-dont-activate) ;; The old behavior used for Emacs<24 was to set
(funcall yas-dont-activate)) ;; `yas-dont-activate-functions' to t buffer-locally.
((consp yas-dont-activate) (not (or (listp yas-dont-activate-functions)
(some #'funcall yas-dont-activate)) (functionp yas-dont-activate-functions)))
(yas-dont-activate)) (run-hook-with-args-until-success 'yas-dont-activate-functions))
(yas-minor-mode 1))) (yas-minor-mode 1)))
;;;###autoload ;;;###autoload