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

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

[elpa] master 4f0ef62 27/72: hydra.el (hydra-pink-fallback): Add


From: Oleh Krehel
Subject: [elpa] master 4f0ef62 27/72: hydra.el (hydra-pink-fallback): Add
Date: Fri, 06 Mar 2015 13:04:09 +0000

branch: master
commit 4f0ef6298ce4bb3204318a9dd1210794735eb106
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    hydra.el (hydra-pink-fallback): Add
    
    * hydra.el (defhydra): More advanced handling of the pink fallback.
    
    Re #38.
---
 hydra.el |   36 ++++++++++++++++++++++++------------
 1 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/hydra.el b/hydra.el
index c710ca0..1ff668e 100644
--- a/hydra.el
+++ b/hydra.el
@@ -401,6 +401,23 @@ BODY-COLOR, BODY-PRE, BODY-POST, and OTHER-POST are used 
as well."
                                 `(lambda () (hydra-cleanup)))))
                     ,other-post))))))
 
+(defun hydra-pink-fallback ()
+  (let ((keys (this-command-keys))
+        kb)
+    (when (equal keys [backspace])
+      (setq keys ""))
+    (setq kb (key-binding keys))
+    (if kb
+        (if (commandp kb)
+            (condition-case err
+                (call-interactively kb)
+              (error
+               (message "%S" err)
+               (unless hydra-lv
+                 (sit-for 0.8))))
+          (message "Pink Hydra can't currently handle prefixes, continuing"))
+      (message "Pink Hydra could not resolve: %S" keys))))
+
 ;;* Macros
 ;;** defhydra
 ;;;###autoload
@@ -500,18 +517,13 @@ result of `defhydra'."
             (define-key keymap [t]
               `(lambda ()
                  (interactive)
-                 ,@ (cond
-                      ((eq body-color 'amaranth)
-                       '((message "An amaranth Hydra can only exit through a 
blue head")))
-                      ((eq body-color 'teal)
-                       '((message "An teal Hydra can only exit through a blue 
head")))
-                      (t
-                       '((let ((kb (key-binding (this-command-keys))))
-                           (if kb
-                               (if (commandp kb)
-                                   (call-interactively kb)
-                                 (error "Pink Hydra can't currently handle 
prefixes, aborting"))
-                             (message "A pink Hydra can only exit through a 
blue head"))))))
+                 ,@(cond
+                    ((eq body-color 'amaranth)
+                     '((message "An amaranth Hydra can only exit through a 
blue head")))
+                    ((eq body-color 'teal)
+                     '((message "An teal Hydra can only exit through a blue 
head")))
+                    (t
+                     '((hydra-pink-fallback))))
                  (hydra-set-transient-map hydra-curr-map t)
                  (when hydra-is-helpful
                    (unless hydra-lv



reply via email to

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