Call the head: `first-error'."
(interactive)
(hydra-default-pre)
+ (let ((hydra--ignore t))
+ (hydra-keyboard-quit))
(condition-case err
(progn
(setq this-command
Call the head: `next-error'."
(interactive)
(hydra-default-pre)
+ (let ((hydra--ignore t))
+ (hydra-keyboard-quit))
(condition-case err
(progn
(setq this-command
Call the head: `previous-error'."
(interactive)
(hydra-default-pre)
+ (let ((hydra--ignore t))
+ (hydra-keyboard-quit))
(condition-case err
(progn
(setq this-command
The body can be accessed via `hydra-error/body'."
(interactive)
(hydra-default-pre)
+ (let ((hydra--ignore nil))
+ (hydra-keyboard-quit))
(when hydra-is-helpful
(if hydra-lv
(lv-message
The body can be accessed via `hydra-toggle/body'."
(interactive)
(hydra-default-pre)
+ (let ((hydra--ignore nil))
+ (hydra-keyboard-quit))
(when hydra-is-helpful
(if hydra-lv
(lv-message
(interactive)
(hydra-default-pre)
(set-cursor-color "#e52b50")
+ (let ((hydra--ignore t))
+ (hydra-keyboard-quit))
(condition-case err
(progn
(setq this-command
(interactive)
(hydra-default-pre)
(set-cursor-color "#e52b50")
+ (let ((hydra--ignore t))
+ (hydra-keyboard-quit))
(condition-case err
(progn
(setq this-command
(interactive)
(hydra-default-pre)
(set-cursor-color "#e52b50")
+ (let ((hydra--ignore nil))
+ (hydra-keyboard-quit))
(when hydra-is-helpful
(if hydra-lv
(lv-message
Call the head: `(text-scale-set 0)'."
(interactive)
(hydra-default-pre)
+ (let ((hydra--ignore t))
+ (hydra-keyboard-quit))
(condition-case err
(call-interactively
(function
The body can be accessed via `hydra-zoom/body'."
(interactive)
(hydra-default-pre)
+ (let ((hydra--ignore nil))
+ (hydra-keyboard-quit))
(when hydra-is-helpful
(if hydra-lv
(lv-message
Call the head: `(text-scale-set 0)'."
(interactive)
(hydra-default-pre)
+ (let ((hydra--ignore t))
+ (hydra-keyboard-quit))
(condition-case err
(call-interactively
(function
The body can be accessed via `hydra-zoom/body'."
(interactive)
(hydra-default-pre)
+ (let ((hydra--ignore nil))
+ (hydra-keyboard-quit))
(when hydra-is-helpful
(if hydra-lv
(lv-message
(t nil)))))
(hydra-disable)))
+(defvar hydra--ignore nil
+ "When non-nil, don't call `hydra-curr-on-exit'")
+
(defun hydra-disable ()
"Disable the current Hydra."
(remove-hook 'pre-command-hook 'hydra--clearfun)
(with-selected-frame frame
(when overriding-terminal-local-map
(internal-pop-keymap hydra-curr-map 'overriding-terminal-local-map)
- (when hydra-curr-on-exit
- (let ((on-exit hydra-curr-on-exit))
- (setq hydra-curr-on-exit nil)
- (funcall on-exit)))))))
+ (unless hydra--ignore
+ (when hydra-curr-on-exit
+ (let ((on-exit hydra-curr-on-exit))
+ (setq hydra-curr-on-exit nil)
+ (funcall on-exit))))))))
(unless (fboundp 'internal-push-keymap)
(defun internal-push-keymap (keymap symbol)
`(,(hydra--call-interactively cmd (cadr head))))))
(delq
nil
- `(,(when cmd
+ `((let ((hydra--ignore ,(not (eq (cadr head) 'body))))
+ (hydra-keyboard-quit))
+ ,(when cmd
`(condition-case err
,(hydra--call-interactively cmd (cadr head))
((quit error)
(message "%S" err)
(unless hydra-lv
(sit-for 0.8)))))
- (when hydra-is-helpful
- (if hydra-lv
- (lv-message (eval ,hint))
- (message (eval ,hint))))
- (hydra-set-transient-map
- ,keymap
- (lambda () (hydra-keyboard-quit) ,body-before-exit)
- ,(when body-foreign-keys
- (list 'quote body-foreign-keys)))
- ,body-after-exit
- ,(when body-timeout
- `(hydra-timeout ,body-timeout))))))))
+ (when hydra-is-helpful
+ (if hydra-lv
+ (lv-message (eval ,hint))
+ (message (eval ,hint))))
+ (hydra-set-transient-map
+ ,keymap
+ (lambda () (hydra-keyboard-quit) ,body-before-exit)
+ ,(when body-foreign-keys
+ (list 'quote body-foreign-keys)))
+ ,body-after-exit
+ ,(when body-timeout
+ `(hydra-timeout ,body-timeout))))))))
(defmacro hydra--make-funcall (sym)
"Transform SYM into a `funcall' to call it."