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

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

[elpa] master 0ae639f 22/45: Use a variable instead of a function for th


From: Oleh Krehel
Subject: [elpa] master 0ae639f 22/45: Use a variable instead of a function for the hint
Date: Thu, 16 Apr 2015 12:45:48 +0000

branch: master
commit 0ae639f7bc3b7ef72bd5f6fcc57f89be8bdd9d37
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    Use a variable instead of a function for the hint
    
    * hydra.el (hydra--message): Remove.
    (hydra--make-defun): Update.
    (defhydra): Replace "defun foo/hint" with "defvar foo/hint".
    
    This will allow to dynamically modify the hint in the future.
    
    * hydra-test.el: Update tests.
---
 hydra-test.el |  450 ++++++++++++++++++++++++++++++---------------------------
 hydra.el      |   19 +--
 2 files changed, 247 insertions(+), 222 deletions(-)

diff --git a/hydra-test.el b/hydra-test.el
index 9fe3fb1..54da5d0 100644
--- a/hydra-test.el
+++ b/hydra-test.el
@@ -41,33 +41,35 @@
       (set
        (defvar hydra-error/keymap nil
          "Keymap for hydra-error.")
-       (quote (keymap (32 . hydra-repeat)
-                      (107 . hydra-error/previous-error)
-                      (106 . hydra-error/next-error)
-                      (104 . hydra-error/first-error)
-                      (kp-subtract . hydra--negative-argument)
-                      (kp-9 . hydra--digit-argument)
-                      (kp-8 . hydra--digit-argument)
-                      (kp-7 . hydra--digit-argument)
-                      (kp-6 . hydra--digit-argument)
-                      (kp-5 . hydra--digit-argument)
-                      (kp-4 . hydra--digit-argument)
-                      (kp-3 . hydra--digit-argument)
-                      (kp-2 . hydra--digit-argument)
-                      (kp-1 . hydra--digit-argument)
-                      (kp-0 . hydra--digit-argument)
-                      (57 . hydra--digit-argument)
-                      (56 . hydra--digit-argument)
-                      (55 . hydra--digit-argument)
-                      (54 . hydra--digit-argument)
-                      (53 . hydra--digit-argument)
-                      (52 . hydra--digit-argument)
-                      (51 . hydra--digit-argument)
-                      (50 . hydra--digit-argument)
-                      (49 . hydra--digit-argument)
-                      (48 . hydra--digit-argument)
-                      (45 . hydra--negative-argument)
-                      (21 . hydra--universal-argument))))
+       (quote
+        (keymap
+         (32 . hydra-repeat)
+         (107 . hydra-error/previous-error)
+         (106 . hydra-error/next-error)
+         (104 . hydra-error/first-error)
+         (kp-subtract . hydra--negative-argument)
+         (kp-9 . hydra--digit-argument)
+         (kp-8 . hydra--digit-argument)
+         (kp-7 . hydra--digit-argument)
+         (kp-6 . hydra--digit-argument)
+         (kp-5 . hydra--digit-argument)
+         (kp-4 . hydra--digit-argument)
+         (kp-3 . hydra--digit-argument)
+         (kp-2 . hydra--digit-argument)
+         (kp-1 . hydra--digit-argument)
+         (kp-0 . hydra--digit-argument)
+         (57 . hydra--digit-argument)
+         (56 . hydra--digit-argument)
+         (55 . hydra--digit-argument)
+         (54 . hydra--digit-argument)
+         (53 . hydra--digit-argument)
+         (52 . hydra--digit-argument)
+         (51 . hydra--digit-argument)
+         (50 . hydra--digit-argument)
+         (49 . hydra--digit-argument)
+         (48 . hydra--digit-argument)
+         (45 . hydra--negative-argument)
+         (21 . hydra--universal-argument))))
       (defun hydra-error/first-error nil
         "Create a hydra with a \"M-g\" body and the heads:
 
@@ -88,7 +90,11 @@ Call the head: `first-error'."
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
         (when hydra-is-helpful
-          (hydra-error/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-error/hint))
+            (message
+             (eval hydra-error/hint))))
         (hydra-set-transient-map
          hydra-error/keymap
          (lambda nil
@@ -115,7 +121,11 @@ Call the head: `next-error'."
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
         (when hydra-is-helpful
-          (hydra-error/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-error/hint))
+            (message
+             (eval hydra-error/hint))))
         (hydra-set-transient-map
          hydra-error/keymap
          (lambda nil
@@ -142,7 +152,11 @@ Call the head: `previous-error'."
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
         (when hydra-is-helpful
-          (hydra-error/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-error/hint))
+            (message
+             (eval hydra-error/hint))))
         (hydra-set-transient-map
          hydra-error/keymap
          (lambda nil
@@ -164,22 +178,16 @@ Call the head: `previous-error'."
       (define-key global-map [134217831 107]
        (function
         hydra-error/previous-error))
-      (defun hydra-error/hint nil
-        (if hydra-lv
-            (lv-message
-             (format
-              #("error: [h]: first, [j]: next, [k]: prev, [SPC]: rep."
-                8 9 (face hydra-face-red)
-                20 21 (face hydra-face-red)
-                31 32 (face hydra-face-red)
-                42 45 (face hydra-face-red))))
-          (message
-           (format
-            #("error: [h]: first, [j]: next, [k]: prev, [SPC]: rep."
-              8 9 (face hydra-face-red)
-              20 21 (face hydra-face-red)
-              31 32 (face hydra-face-red)
-              42 45 (face hydra-face-red))))))
+      (set
+       (defvar hydra-error/hint nil
+         "Dynamic hint for hydra-error.")
+       (quote
+        (format
+         #("error: [h]: first, [j]: next, [k]: prev, [SPC]: rep."
+           8 9 (face hydra-face-red)
+           20 21 (face hydra-face-red)
+           31 32 (face hydra-face-red)
+           42 45 (face hydra-face-red)))))
       (defun hydra-error/body nil
         "Create a hydra with a \"M-g\" body and the heads:
 
@@ -192,7 +200,11 @@ The body can be accessed via `hydra-error/body'."
         (interactive)
         (hydra-default-pre)
         (when hydra-is-helpful
-          (hydra-error/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-error/hint))
+            (message
+             (eval hydra-error/hint))))
         (hydra-set-transient-map
          hydra-error/keymap
          (lambda nil
@@ -216,33 +228,35 @@ The body can be accessed via `hydra-error/body'."
       (set
        (defvar hydra-toggle/keymap nil
          "Keymap for hydra-toggle.")
-       (quote (keymap (113 . hydra-toggle/nil)
-                      (97 . hydra-toggle/abbrev-mode-and-exit)
-                      (102 . hydra-toggle/auto-fill-mode-and-exit)
-                      (116 . hydra-toggle/toggle-truncate-lines-and-exit)
-                      (kp-subtract . hydra--negative-argument)
-                      (kp-9 . hydra--digit-argument)
-                      (kp-8 . hydra--digit-argument)
-                      (kp-7 . hydra--digit-argument)
-                      (kp-6 . hydra--digit-argument)
-                      (kp-5 . hydra--digit-argument)
-                      (kp-4 . hydra--digit-argument)
-                      (kp-3 . hydra--digit-argument)
-                      (kp-2 . hydra--digit-argument)
-                      (kp-1 . hydra--digit-argument)
-                      (kp-0 . hydra--digit-argument)
-                      (57 . hydra--digit-argument)
-                      (56 . hydra--digit-argument)
-                      (55 . hydra--digit-argument)
-                      (54 . hydra--digit-argument)
-                      (53 . hydra--digit-argument)
-                      (52 . hydra--digit-argument)
-                      (51 . hydra--digit-argument)
-                      (50 . hydra--digit-argument)
-                      (49 . hydra--digit-argument)
-                      (48 . hydra--digit-argument)
-                      (45 . hydra--negative-argument)
-                      (21 . hydra--universal-argument))))
+       (quote
+        (keymap
+         (113 . hydra-toggle/nil)
+         (97 . hydra-toggle/abbrev-mode-and-exit)
+         (102 . hydra-toggle/auto-fill-mode-and-exit)
+         (116 . hydra-toggle/toggle-truncate-lines-and-exit)
+         (kp-subtract . hydra--negative-argument)
+         (kp-9 . hydra--digit-argument)
+         (kp-8 . hydra--digit-argument)
+         (kp-7 . hydra--digit-argument)
+         (kp-6 . hydra--digit-argument)
+         (kp-5 . hydra--digit-argument)
+         (kp-4 . hydra--digit-argument)
+         (kp-3 . hydra--digit-argument)
+         (kp-2 . hydra--digit-argument)
+         (kp-1 . hydra--digit-argument)
+         (kp-0 . hydra--digit-argument)
+         (57 . hydra--digit-argument)
+         (56 . hydra--digit-argument)
+         (55 . hydra--digit-argument)
+         (54 . hydra--digit-argument)
+         (53 . hydra--digit-argument)
+         (52 . hydra--digit-argument)
+         (51 . hydra--digit-argument)
+         (50 . hydra--digit-argument)
+         (49 . hydra--digit-argument)
+         (48 . hydra--digit-argument)
+         (45 . hydra--negative-argument)
+         (21 . hydra--universal-argument))))
       (defun hydra-toggle/toggle-truncate-lines-and-exit nil
         "Create a hydra with no body and the heads:
 
@@ -307,22 +321,16 @@ Call the head: `nil'."
         (hydra-default-pre)
         (hydra-keyboard-quit)
         nil)
-      (defun hydra-toggle/hint nil
-        (if hydra-lv
-            (lv-message
-             (format
-              #("toggle: [t]: truncate, [f]: fill, [a]: abbrev, [q]: cancel."
-                9 10 (face hydra-face-blue)
-                24 25 (face hydra-face-blue)
-                35 36 (face hydra-face-blue)
-                48 49 (face hydra-face-blue))))
-          (message
-           (format
-            #("toggle: [t]: truncate, [f]: fill, [a]: abbrev, [q]: cancel."
-              9 10 (face hydra-face-blue)
-              24 25 (face hydra-face-blue)
-              35 36 (face hydra-face-blue)
-              48 49 (face hydra-face-blue))))))
+      (set
+       (defvar hydra-toggle/hint nil
+         "Dynamic hint for hydra-toggle.")
+       (quote
+        (format
+         #("toggle: [t]: truncate, [f]: fill, [a]: abbrev, [q]: cancel."
+           9 10 (face hydra-face-blue)
+           24 25 (face hydra-face-blue)
+           35 36 (face hydra-face-blue)
+           48 49 (face hydra-face-blue)))))
       (defun hydra-toggle/body nil
         "Create a hydra with no body and the heads:
 
@@ -335,7 +343,11 @@ The body can be accessed via `hydra-toggle/body'."
         (interactive)
         (hydra-default-pre)
         (when hydra-is-helpful
-          (hydra-toggle/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-toggle/hint))
+            (message
+             (eval hydra-toggle/hint))))
         (hydra-set-transient-map
          hydra-toggle/keymap
          (lambda nil
@@ -363,32 +375,34 @@ The body can be accessed via `hydra-toggle/body'."
       (set
        (defvar hydra-vi/keymap nil
          "Keymap for hydra-vi.")
-       (quote (keymap (113 . hydra-vi/nil)
-                      (107 . hydra-vi/previous-line)
-                      (106 . hydra-vi/next-line)
-                      (kp-subtract . hydra--negative-argument)
-                      (kp-9 . hydra--digit-argument)
-                      (kp-8 . hydra--digit-argument)
-                      (kp-7 . hydra--digit-argument)
-                      (kp-6 . hydra--digit-argument)
-                      (kp-5 . hydra--digit-argument)
-                      (kp-4 . hydra--digit-argument)
-                      (kp-3 . hydra--digit-argument)
-                      (kp-2 . hydra--digit-argument)
-                      (kp-1 . hydra--digit-argument)
-                      (kp-0 . hydra--digit-argument)
-                      (57 . hydra--digit-argument)
-                      (56 . hydra--digit-argument)
-                      (55 . hydra--digit-argument)
-                      (54 . hydra--digit-argument)
-                      (53 . hydra--digit-argument)
-                      (52 . hydra--digit-argument)
-                      (51 . hydra--digit-argument)
-                      (50 . hydra--digit-argument)
-                      (49 . hydra--digit-argument)
-                      (48 . hydra--digit-argument)
-                      (45 . hydra--negative-argument)
-                      (21 . hydra--universal-argument))))
+       (quote
+        (keymap
+         (113 . hydra-vi/nil)
+         (107 . hydra-vi/previous-line)
+         (106 . hydra-vi/next-line)
+         (kp-subtract . hydra--negative-argument)
+         (kp-9 . hydra--digit-argument)
+         (kp-8 . hydra--digit-argument)
+         (kp-7 . hydra--digit-argument)
+         (kp-6 . hydra--digit-argument)
+         (kp-5 . hydra--digit-argument)
+         (kp-4 . hydra--digit-argument)
+         (kp-3 . hydra--digit-argument)
+         (kp-2 . hydra--digit-argument)
+         (kp-1 . hydra--digit-argument)
+         (kp-0 . hydra--digit-argument)
+         (57 . hydra--digit-argument)
+         (56 . hydra--digit-argument)
+         (55 . hydra--digit-argument)
+         (54 . hydra--digit-argument)
+         (53 . hydra--digit-argument)
+         (52 . hydra--digit-argument)
+         (51 . hydra--digit-argument)
+         (50 . hydra--digit-argument)
+         (49 . hydra--digit-argument)
+         (48 . hydra--digit-argument)
+         (45 . hydra--negative-argument)
+         (21 . hydra--universal-argument))))
       (defun hydra-vi/next-line nil
         "Create a hydra with no body and the heads:
 
@@ -409,7 +423,10 @@ Call the head: `next-line'."
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
         (when hydra-is-helpful
-          (hydra-vi/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-vi/hint))
+            (message (eval hydra-vi/hint))))
         (hydra-set-transient-map
          hydra-vi/keymap
          (lambda nil
@@ -436,7 +453,10 @@ Call the head: `previous-line'."
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
         (when hydra-is-helpful
-          (hydra-vi/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-vi/hint))
+            (message (eval hydra-vi/hint))))
         (hydra-set-transient-map
          hydra-vi/keymap
          (lambda nil
@@ -458,20 +478,15 @@ Call the head: `nil'."
         (set-cursor-color "#e52b50")
         (hydra-keyboard-quit)
         nil)
-      (defun hydra-vi/hint nil
-        (if hydra-lv
-            (lv-message
-             (format
-              #("vi: j, k, [q]: quit."
-                4 5 (face hydra-face-amaranth)
-                7 8 (face hydra-face-amaranth)
-                11 12 (face hydra-face-blue))))
-          (message
-           (format
-            #("vi: j, k, [q]: quit."
-              4 5 (face hydra-face-amaranth)
-              7 8 (face hydra-face-amaranth)
-              11 12 (face hydra-face-blue))))))
+      (set
+       (defvar hydra-vi/hint nil
+         "Dynamic hint for hydra-vi.")
+       (quote
+        (format
+         #("vi: j, k, [q]: quit."
+           4 5 (face hydra-face-amaranth)
+           7 8 (face hydra-face-amaranth)
+           11 12 (face hydra-face-blue)))))
       (defun hydra-vi/body nil
         "Create a hydra with no body and the heads:
 
@@ -484,7 +499,10 @@ The body can be accessed via `hydra-vi/body'."
         (hydra-default-pre)
         (set-cursor-color "#e52b50")
         (when hydra-is-helpful
-          (hydra-vi/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-vi/hint))
+            (message (eval hydra-vi/hint))))
         (hydra-set-transient-map
          hydra-vi/keymap
          (lambda nil
@@ -507,30 +525,32 @@ The body can be accessed via `hydra-vi/body'."
       (set
        (defvar hydra-zoom/keymap nil
          "Keymap for hydra-zoom.")
-       (quote (keymap (114 . hydra-zoom/lambda-r)
-                      (kp-subtract . hydra--negative-argument)
-                      (kp-9 . hydra--digit-argument)
-                      (kp-8 . hydra--digit-argument)
-                      (kp-7 . hydra--digit-argument)
-                      (kp-6 . hydra--digit-argument)
-                      (kp-5 . hydra--digit-argument)
-                      (kp-4 . hydra--digit-argument)
-                      (kp-3 . hydra--digit-argument)
-                      (kp-2 . hydra--digit-argument)
-                      (kp-1 . hydra--digit-argument)
-                      (kp-0 . hydra--digit-argument)
-                      (57 . hydra--digit-argument)
-                      (56 . hydra--digit-argument)
-                      (55 . hydra--digit-argument)
-                      (54 . hydra--digit-argument)
-                      (53 . hydra--digit-argument)
-                      (52 . hydra--digit-argument)
-                      (51 . hydra--digit-argument)
-                      (50 . hydra--digit-argument)
-                      (49 . hydra-zoom/lambda-0-and-exit)
-                      (48 . hydra-zoom/lambda-0-and-exit)
-                      (45 . hydra--negative-argument)
-                      (21 . hydra--universal-argument))))
+       (quote
+        (keymap
+         (114 . hydra-zoom/lambda-r)
+         (kp-subtract . hydra--negative-argument)
+         (kp-9 . hydra--digit-argument)
+         (kp-8 . hydra--digit-argument)
+         (kp-7 . hydra--digit-argument)
+         (kp-6 . hydra--digit-argument)
+         (kp-5 . hydra--digit-argument)
+         (kp-4 . hydra--digit-argument)
+         (kp-3 . hydra--digit-argument)
+         (kp-2 . hydra--digit-argument)
+         (kp-1 . hydra--digit-argument)
+         (kp-0 . hydra--digit-argument)
+         (57 . hydra--digit-argument)
+         (56 . hydra--digit-argument)
+         (55 . hydra--digit-argument)
+         (54 . hydra--digit-argument)
+         (53 . hydra--digit-argument)
+         (52 . hydra--digit-argument)
+         (51 . hydra--digit-argument)
+         (50 . hydra--digit-argument)
+         (49 . hydra-zoom/lambda-0-and-exit)
+         (48 . hydra-zoom/lambda-0-and-exit)
+         (45 . hydra--negative-argument)
+         (21 . hydra--universal-argument))))
       (defun hydra-zoom/lambda-r nil
         "Create a hydra with no body and the heads:
 
@@ -553,7 +573,11 @@ Call the head: `(text-scale-set 0)'."
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
         (when hydra-is-helpful
-          (hydra-zoom/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-zoom/hint))
+            (message
+             (eval hydra-zoom/hint))))
         (hydra-set-transient-map
          hydra-zoom/keymap
          (lambda nil
@@ -578,18 +602,14 @@ Call the head: `(text-scale-set 0)'."
           (lambda nil
            (interactive)
            (text-scale-set 0)))))
-      (defun hydra-zoom/hint nil
-        (if hydra-lv
-            (lv-message
-             (format
-              #("zoom: [r 0]: reset."
-                7 8 (face hydra-face-red)
-                9 10 (face hydra-face-blue))))
-          (message
-           (format
-            #("zoom: [r 0]: reset."
-              7 8 (face hydra-face-red)
-              9 10 (face hydra-face-blue))))))
+      (set
+       (defvar hydra-zoom/hint nil
+         "Dynamic hint for hydra-zoom.")
+       (quote
+        (format
+         #("zoom: [r 0]: reset."
+           7 8 (face hydra-face-red)
+           9 10 (face hydra-face-blue)))))
       (defun hydra-zoom/body nil
         "Create a hydra with no body and the heads:
 
@@ -601,7 +621,11 @@ The body can be accessed via `hydra-zoom/body'."
         (interactive)
         (hydra-default-pre)
         (when hydra-is-helpful
-          (hydra-zoom/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-zoom/hint))
+            (message
+             (eval hydra-zoom/hint))))
         (hydra-set-transient-map
          hydra-zoom/keymap
          (lambda nil
@@ -624,30 +648,32 @@ The body can be accessed via `hydra-zoom/body'."
       (set
        (defvar hydra-zoom/keymap nil
          "Keymap for hydra-zoom.")
-       (quote (keymap (114 . hydra-zoom/lambda-r)
-                      (kp-subtract . hydra--negative-argument)
-                      (kp-9 . hydra--digit-argument)
-                      (kp-8 . hydra--digit-argument)
-                      (kp-7 . hydra--digit-argument)
-                      (kp-6 . hydra--digit-argument)
-                      (kp-5 . hydra--digit-argument)
-                      (kp-4 . hydra--digit-argument)
-                      (kp-3 . hydra--digit-argument)
-                      (kp-2 . hydra--digit-argument)
-                      (kp-1 . hydra--digit-argument)
-                      (kp-0 . hydra--digit-argument)
-                      (57 . hydra--digit-argument)
-                      (56 . hydra--digit-argument)
-                      (55 . hydra--digit-argument)
-                      (54 . hydra--digit-argument)
-                      (53 . hydra--digit-argument)
-                      (52 . hydra--digit-argument)
-                      (51 . hydra--digit-argument)
-                      (50 . hydra--digit-argument)
-                      (49 . hydra-zoom/lambda-r)
-                      (48 . hydra-zoom/lambda-0-and-exit)
-                      (45 . hydra--negative-argument)
-                      (21 . hydra--universal-argument))))
+       (quote
+        (keymap
+         (114 . hydra-zoom/lambda-r)
+         (kp-subtract . hydra--negative-argument)
+         (kp-9 . hydra--digit-argument)
+         (kp-8 . hydra--digit-argument)
+         (kp-7 . hydra--digit-argument)
+         (kp-6 . hydra--digit-argument)
+         (kp-5 . hydra--digit-argument)
+         (kp-4 . hydra--digit-argument)
+         (kp-3 . hydra--digit-argument)
+         (kp-2 . hydra--digit-argument)
+         (kp-1 . hydra--digit-argument)
+         (kp-0 . hydra--digit-argument)
+         (57 . hydra--digit-argument)
+         (56 . hydra--digit-argument)
+         (55 . hydra--digit-argument)
+         (54 . hydra--digit-argument)
+         (53 . hydra--digit-argument)
+         (52 . hydra--digit-argument)
+         (51 . hydra--digit-argument)
+         (50 . hydra--digit-argument)
+         (49 . hydra-zoom/lambda-r)
+         (48 . hydra-zoom/lambda-0-and-exit)
+         (45 . hydra--negative-argument)
+         (21 . hydra--universal-argument))))
       (defun hydra-zoom/lambda-r nil
         "Create a hydra with no body and the heads:
 
@@ -670,7 +696,11 @@ Call the head: `(text-scale-set 0)'."
            (message "%S" err)
            (unless hydra-lv (sit-for 0.8))))
         (when hydra-is-helpful
-          (hydra-zoom/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-zoom/hint))
+            (message
+             (eval hydra-zoom/hint))))
         (hydra-set-transient-map
          hydra-zoom/keymap
          (lambda nil
@@ -695,18 +725,14 @@ Call the head: `(text-scale-set 0)'."
           (lambda nil
            (interactive)
            (text-scale-set 0)))))
-      (defun hydra-zoom/hint nil
-        (if hydra-lv
-            (lv-message
-             (format
-              #("zoom: [r 0]: reset."
-                7 8 (face hydra-face-red)
-                9 10 (face hydra-face-blue))))
-          (message
-           (format
-            #("zoom: [r 0]: reset."
-              7 8 (face hydra-face-red)
-              9 10 (face hydra-face-blue))))))
+      (set
+       (defvar hydra-zoom/hint nil
+         "Dynamic hint for hydra-zoom.")
+       (quote
+        (format
+         #("zoom: [r 0]: reset."
+           7 8 (face hydra-face-red)
+           9 10 (face hydra-face-blue)))))
       (defun hydra-zoom/body nil
         "Create a hydra with no body and the heads:
 
@@ -718,7 +744,11 @@ The body can be accessed via `hydra-zoom/body'."
         (interactive)
         (hydra-default-pre)
         (when hydra-is-helpful
-          (hydra-zoom/hint))
+          (if hydra-lv
+              (lv-message
+               (eval hydra-zoom/hint))
+            (message
+             (eval hydra-zoom/hint))))
         (hydra-set-transient-map
          hydra-zoom/keymap
          (lambda nil
diff --git a/hydra.el b/hydra.el
index 3dd7459..66a8f26 100644
--- a/hydra.el
+++ b/hydra.el
@@ -520,15 +520,6 @@ The expressions can be auto-expanded according to NAME."
                  ,rest)
       `(format ,(concat docstring ": " rest ".")))))
 
-(defun hydra--message (name body docstring heads)
-  "Generate code to display the hint in the preferred echo area.
-Set `hydra-lv' to choose the echo area.
-NAME, BODY, DOCSTRING, and HEADS are parameters of `defhydra'."
-  (let ((format-expr (hydra--format name body docstring heads)))
-    `(if hydra-lv
-         (lv-message ,format-expr)
-       (message ,format-expr))))
-
 (defun hydra--complain (format-string &rest args)
   "Forward to (`message' FORMAT-STRING ARGS) unless `hydra-verbose' is nil."
   (when hydra-verbose
@@ -594,7 +585,9 @@ BODY-AFTER-EXIT is added to the end of the wrapper."
                            (unless hydra-lv
                              (sit-for 0.8)))))
                  (when hydra-is-helpful
-                   (,hint))
+                   (if hydra-lv
+                       (lv-message (eval ,hint))
+                     (message (eval ,hint))))
                  (hydra-set-transient-map
                   ,keymap
                   (lambda () (hydra-keyboard-quit) ,body-before-exit)
@@ -905,8 +898,10 @@ result of `defhydra'."
                                     (t
                                      (error "Invalid :bind property `%S' for 
head %S" bind head)))))))
                       heads))
-             (defun ,(intern (format "%S/hint" name)) ()
-               ,(hydra--message name body docstring heads))
+             (set
+              (defvar ,(intern (format "%S/hint" name)) nil
+                ,(format "Dynamic hint for %S." name))
+              ',(hydra--format name body docstring heads))
              ,(hydra--make-defun
                name body doc '(nil body)
                keymap-name



reply via email to

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