branch: master commit bd30a30d88bd78c5a47b479c3bcaf3c540810541 Author: Stefan Monnier <monn...@iro.umontreal.ca> Commit: Noam Postavsky <npost...@users.sourceforge.net>
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. --- yasnippet.el | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/yasnippet.el b/yasnippet.el index a5a9690..9bdb5f9 100644 --- a/yasnippet.el +++ b/yasnippet.el @@ -827,21 +827,20 @@ activate snippets associated with that mode." (remove mode yas--extra-modes))) -(defvar yas-dont-activate '(minibufferp) - "If non-nil don't let `yas-global-mode' affect some buffers. - -If a function of zero arguments, then its result is used. - -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 +(define-obsolete-variable-alias 'yas-dont-activate + '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. + +In Emacsen < 24, this variable is buffer-local. Because `yas-minor-mode-on' is called by `yas-global-mode' after executing the buffer's major mode hook, setting this variable there is an effective way to define exceptions to the \"global\" 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 `yas-minor-mode' with a negative argument directily in the major mode's hook.") @@ -853,14 +852,14 @@ mode's hook.") (defun yas-minor-mode-on () "Turn on YASnippet minor mode. -Honour `yas-dont-activate', which see." +Honour `yas-dont-activate-functions', which see." (interactive) - ;; Check `yas-dont-activate' - (unless (cond ((functionp yas-dont-activate) - (funcall yas-dont-activate)) - ((consp yas-dont-activate) - (some #'funcall yas-dont-activate)) - (yas-dont-activate)) + (unless (or + ;; The old behavior used for Emacs<24 was to set + ;; `yas-dont-activate-functions' to t buffer-locally. + (not (or (listp yas-dont-activate-functions) + (functionp yas-dont-activate-functions))) + (run-hook-with-args-until-success 'yas-dont-activate-functions)) (yas-minor-mode 1))) ;;;###autoload