emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 81d88e4 15/36: hydra.el (hydra-show-hint): Extract from de


From: Oleh Krehel
Subject: [elpa] master 81d88e4 15/36: hydra.el (hydra-show-hint): Extract from defhydra
Date: Sat, 22 Jul 2017 11:22:23 -0400 (EDT)

branch: master
commit 81d88e4c11595c2d7003546e0afbbd03a5222a37
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    hydra.el (hydra-show-hint): Extract from defhydra
    
    * hydra-test.el: Update tests.
    
    There should be no change in the behavior, but now the code that shows
    the hint is all conveniently in a single defun, instead of separately in
    each hydra's each head.
---
 hydra-test.el | 146 ++++++++++++++++++++--------------------------------------
 hydra.el      |  16 +++----
 2 files changed, 57 insertions(+), 105 deletions(-)

diff --git a/hydra-test.el b/hydra-test.el
index 03c20d4..1c14c70 100644
--- a/hydra-test.el
+++ b/hydra-test.el
@@ -121,20 +121,16 @@ Call the head: `first-error'."
           (setq hydra-curr-body-fn
                 (quote hydra-error/body)))
         (condition-case err
-                        (progn
-                          (setq this-command
-                                (quote first-error))
-                          (call-interactively
-                           (function first-error)))
-                        ((quit error)
-                         (message "%S" err)
-                         (unless hydra-lv (sit-for 0.8))))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-error/hint))
-            (message
-             (eval hydra-error/hint))))
+            (progn
+              (setq this-command
+                    (quote first-error))
+              (call-interactively
+               (function first-error)))
+          ((quit error)
+           (message "%S" err)
+           (unless hydra-lv (sit-for 0.8))))
+        (hydra-show-hint
+         hydra-error/hint)
         (hydra-set-transient-map
          hydra-error/keymap
          (lambda nil
@@ -159,20 +155,16 @@ Call the head: `next-error'."
           (setq hydra-curr-body-fn
                 (quote hydra-error/body)))
         (condition-case err
-                        (progn
-                          (setq this-command
-                                (quote next-error))
-                          (call-interactively
-                           (function next-error)))
-                        ((quit error)
-                         (message "%S" err)
-                         (unless hydra-lv (sit-for 0.8))))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-error/hint))
-            (message
-             (eval hydra-error/hint))))
+            (progn
+              (setq this-command
+                    (quote next-error))
+              (call-interactively
+               (function next-error)))
+          ((quit error)
+           (message "%S" err)
+           (unless hydra-lv (sit-for 0.8))))
+        (hydra-show-hint
+         hydra-error/hint)
         (hydra-set-transient-map
          hydra-error/keymap
          (lambda nil
@@ -197,20 +189,16 @@ Call the head: `previous-error'."
           (setq hydra-curr-body-fn
                 (quote hydra-error/body)))
         (condition-case err
-                        (progn
-                          (setq this-command
-                                (quote previous-error))
-                          (call-interactively
-                           (function previous-error)))
-                        ((quit error)
-                         (message "%S" err)
-                         (unless hydra-lv (sit-for 0.8))))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-error/hint))
-            (message
-             (eval hydra-error/hint))))
+            (progn
+              (setq this-command
+                    (quote previous-error))
+              (call-interactively
+               (function previous-error)))
+          ((quit error)
+           (message "%S" err)
+           (unless hydra-lv (sit-for 0.8))))
+        (hydra-show-hint
+         hydra-error/hint)
         (hydra-set-transient-map
          hydra-error/keymap
          (lambda nil
@@ -224,12 +212,12 @@ Call the head: `previous-error'."
         (define-key global-map (kbd "M-g")
           nil))
       (define-key global-map [134217831 104]
-        (quote hydra-error/first-error))
+       (quote hydra-error/first-error))
       (define-key global-map [134217831 106]
-        (quote hydra-error/next-error))
+       (quote hydra-error/next-error))
       (define-key global-map [134217831 107]
-        (quote
-         hydra-error/previous-error))
+       (quote
+        hydra-error/previous-error))
       (defun hydra-error/body nil
         "Create a hydra with a \"M-g\" body and the heads:
 
@@ -245,12 +233,8 @@ The body can be accessed via `hydra-error/body'."
           (hydra-keyboard-quit)
           (setq hydra-curr-body-fn
                 (quote hydra-error/body)))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-error/hint))
-            (message
-             (eval hydra-error/hint))))
+        (hydra-show-hint
+         hydra-error/hint)
         (hydra-set-transient-map
          hydra-error/keymap
          (lambda nil
@@ -425,12 +409,8 @@ The body can be accessed via `hydra-toggle/body'."
           (hydra-keyboard-quit)
           (setq hydra-curr-body-fn
                 (quote hydra-toggle/body)))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-toggle/hint))
-            (message
-             (eval hydra-toggle/hint))))
+        (hydra-show-hint
+         hydra-toggle/hint)
         (hydra-set-transient-map
          hydra-toggle/keymap
          (lambda nil
@@ -531,11 +511,7 @@ Call the head: `next-line'."
           ((quit error)
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-vi/hint))
-            (message (eval hydra-vi/hint))))
+        (hydra-show-hint hydra-vi/hint)
         (hydra-set-transient-map
          hydra-vi/keymap
          (lambda nil
@@ -568,11 +544,7 @@ Call the head: `previous-line'."
           ((quit error)
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-vi/hint))
-            (message (eval hydra-vi/hint))))
+        (hydra-show-hint hydra-vi/hint)
         (hydra-set-transient-map
          hydra-vi/keymap
          (lambda nil
@@ -610,11 +582,7 @@ The body can be accessed via `hydra-vi/body'."
           (hydra-keyboard-quit)
           (setq hydra-curr-body-fn
                 (quote hydra-vi/body)))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-vi/hint))
-            (message (eval hydra-vi/hint))))
+        (hydra-show-hint hydra-vi/hint)
         (hydra-set-transient-map
          hydra-vi/keymap
          (lambda nil
@@ -714,12 +682,8 @@ Call the head: `(text-scale-set 0)'."
           ((quit error)
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-zoom/hint))
-            (message
-             (eval hydra-zoom/hint))))
+        (hydra-show-hint
+         hydra-zoom/hint)
         (hydra-set-transient-map
          hydra-zoom/keymap
          (lambda nil
@@ -760,12 +724,8 @@ The body can be accessed via `hydra-zoom/body'."
           (hydra-keyboard-quit)
           (setq hydra-curr-body-fn
                 (quote hydra-zoom/body)))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-zoom/hint))
-            (message
-             (eval hydra-zoom/hint))))
+        (hydra-show-hint
+         hydra-zoom/hint)
         (hydra-set-transient-map
          hydra-zoom/keymap
          (lambda nil
@@ -865,12 +825,8 @@ Call the head: `(text-scale-set 0)'."
           ((quit error)
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-zoom/hint))
-            (message
-             (eval hydra-zoom/hint))))
+        (hydra-show-hint
+         hydra-zoom/hint)
         (hydra-set-transient-map
          hydra-zoom/keymap
          (lambda nil
@@ -911,12 +867,8 @@ The body can be accessed via `hydra-zoom/body'."
           (hydra-keyboard-quit)
           (setq hydra-curr-body-fn
                 (quote hydra-zoom/body)))
-        (when hydra-is-helpful
-          (if hydra-lv
-              (lv-message
-               (eval hydra-zoom/hint))
-            (message
-             (eval hydra-zoom/hint))))
+        (hydra-show-hint
+         hydra-zoom/hint)
         (hydra-set-transient-map
          hydra-zoom/keymap
          (lambda nil
diff --git a/hydra.el b/hydra.el
index 9e4947d..14d275e 100644
--- a/hydra.el
+++ b/hydra.el
@@ -769,10 +769,7 @@ BODY-AFTER-EXIT is added to the end of the wrapper."
                        (sit-for 0.8)))))
               ,(if (and body-idle (eq (cadr head) 'body))
                    `(hydra-idle-message ,body-idle ,hint)
-                 `(when hydra-is-helpful
-                    (if hydra-lv
-                        (lv-message (eval ,hint))
-                      (message (eval ,hint)))))
+                 `(hydra-show-hint ,hint))
               (hydra-set-transient-map
                ,keymap
                (lambda () (hydra-keyboard-quit) ,body-before-exit)
@@ -782,6 +779,12 @@ BODY-AFTER-EXIT is added to the end of the wrapper."
               ,(when body-timeout
                  `(hydra-timeout ,body-timeout))))))))
 
+(defun hydra-show-hint (hint)
+  (when hydra-is-helpful
+    (if hydra-lv
+        (lv-message (eval hint))
+      (message (eval hint)))))
+
 (defmacro hydra--make-funcall (sym)
   "Transform SYM into a `funcall' to call it."
   `(when (and ,sym (symbolp ,sym))
@@ -920,10 +923,7 @@ NAMES should be defined by `defhydradio' or similar."
   (timer-set-function
    hydra-message-timer
    (lambda ()
-     (when hydra-is-helpful
-       (if hydra-lv
-           (lv-message (eval hint))
-         (message (eval hint))))
+     (hydra-show-hint hint)
      (cancel-timer hydra-message-timer)))
   (timer-activate hydra-message-timer))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]