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

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

[elpa] master 26c3fee 60/72: Remove hydra-exit


From: Oleh Krehel
Subject: [elpa] master 26c3fee 60/72: Remove hydra-exit
Date: Fri, 06 Mar 2015 13:04:22 +0000

branch: master
commit 26c3feed9577975f3dc0026142c4c6ffcfb59547
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    Remove hydra-exit
    
    * hydra-test.el: Revert tests.
    
    * hydra.el (hydra-exit): Delete, since `hydra-exit' doesn't run :post.
    (hydra--delete-duplicates): Simplify.
    (defhydra): Simplify.
    
    Hydras with nil body will still not be bound in outside keymaps.
    
    Re #48
    Fixes #53
---
 hydra-test.el |   37 +++++++++++++++++++++++++++++++++----
 hydra.el      |   28 ++++++++++------------------
 2 files changed, 43 insertions(+), 22 deletions(-)

diff --git a/hydra-test.el b/hydra-test.el
index b4a1994..b904f2d 100644
--- a/hydra-test.el
+++ b/hydra-test.el
@@ -297,6 +297,20 @@ Call the head: `abbrev-mode'."
              (hydra-cleanup)
              (catch (quote hydra-disable)
                (call-interactively (function abbrev-mode))))
+      (defun hydra-toggle/nil nil "Create a hydra with no body and the heads:
+
+\"t\":    `toggle-truncate-lines',
+\"f\":    `auto-fill-mode',
+\"a\":    `abbrev-mode',
+\"q\":    `nil'
+
+The body can be accessed via `hydra-toggle/body'.
+
+Call the head: `nil'."
+             (interactive)
+             (hydra-disable)
+             (hydra-cleanup)
+             (catch (quote hydra-disable)))
       (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)
@@ -323,7 +337,7 @@ The body can be accessed via `hydra-toggle/body'."
                       (setq hydra-curr-map
                             (quote
                              (keymap (7 . hydra-keyboard-quit)
-                                     (113 . hydra-exit)
+                                     (113 . hydra-toggle/nil)
                                      (97 . hydra-toggle/abbrev-mode)
                                      (102 . hydra-toggle/auto-fill-mode)
                                      (116 . hydra-toggle/toggle-truncate-lines)
@@ -396,7 +410,7 @@ Call the head: `next-line'."
                                         (when hydra-is-helpful (unless 
hydra-lv (sit-for 0.8))
                                               (hydra-vi/hint)))
                                      (7 . hydra-keyboard-quit)
-                                     (113 . hydra-exit)
+                                     (113 . hydra-vi/nil)
                                      (107 . hydra-vi/previous-line)
                                      (106 . hydra-vi/next-line)
                                      (kp-subtract . hydra--negative-argument)
@@ -451,7 +465,7 @@ Call the head: `previous-line'."
                                         (when hydra-is-helpful (unless 
hydra-lv (sit-for 0.8))
                                               (hydra-vi/hint)))
                                      (7 . hydra-keyboard-quit)
-                                     (113 . hydra-exit)
+                                     (113 . hydra-vi/nil)
                                      (107 . hydra-vi/previous-line)
                                      (106 . hydra-vi/next-line)
                                      (kp-subtract . hydra--negative-argument)
@@ -478,6 +492,21 @@ Call the head: `previous-line'."
                                      (45 . hydra--negative-argument)
                                      (21 . hydra--universal-argument))))
                       t (lambda nil (hydra-cleanup))))))
+      (defun hydra-vi/nil nil "Create a hydra with no body and the heads:
+
+\"j\":    `next-line',
+\"k\":    `previous-line',
+\"q\":    `nil'
+
+The body can be accessed via `hydra-vi/body'.
+
+Call the head: `nil'."
+             (interactive)
+             (set-cursor-color "#e52b50")
+             (hydra-disable)
+             (hydra-cleanup)
+             (catch (quote hydra-disable)
+               (set-cursor-color "#ffffff")))
       (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)
@@ -507,7 +536,7 @@ The body can be accessed via `hydra-vi/body'."
                                         (when hydra-is-helpful (unless 
hydra-lv (sit-for 0.8))
                                               (hydra-vi/hint)))
                                      (7 . hydra-keyboard-quit)
-                                     (113 . hydra-exit)
+                                     (113 . hydra-vi/nil)
                                      (107 . hydra-vi/previous-line)
                                      (106 . hydra-vi/next-line)
                                      (kp-subtract . hydra--negative-argument)
diff --git a/hydra.el b/hydra.el
index cc3e5fe..3b73f44 100644
--- a/hydra.el
+++ b/hydra.el
@@ -378,12 +378,6 @@ BODY is the second argument to `defhydra'"
     (t
      (setq overriding-terminal-local-map nil))))
 
-(defun hydra-exit ()
-  "Exit the current Hydra and clean up."
-  (interactive)
-  (hydra-disable)
-  (hydra-cleanup))
-
 (defun hydra--unalias-var (str prefix)
   "Return the symbol named STR if it's bound as a variable.
 Otherwise, add PREFIX to the symbol name."
@@ -640,17 +634,15 @@ NAME, BODY and HEADS are parameters to `defhydra'."
 In duplicate HEADS, :cmd-name is modified to whatever they duplicate."
   (let (res ali entry)
     (dolist (h heads)
-      (if (null (cadr h))
-          (setf (cl-cdddr h) (plist-put (cl-cdddr h) :cmd-name 'hydra-exit))
-        (if (setq entry (assoc (cons (cadr h)
-                                     (hydra--head-color h '(nil nil)))
-                               ali))
-            (setf (cl-cdddr h) (plist-put (cl-cdddr h) :cmd-name (cdr entry)))
-          (push (cons (cons (cadr h)
-                            (hydra--head-color h '(nil nil)))
-                      (plist-get (cl-cdddr h) :cmd-name))
-                ali)
-          (push h res))))
+      (if (setq entry (assoc (cons (cadr h)
+                                   (hydra--head-color h '(nil nil)))
+                             ali))
+          (setf (cl-cdddr h) (plist-put (cl-cdddr h) :cmd-name (cdr entry)))
+        (push (cons (cons (cadr h)
+                          (hydra--head-color h '(nil nil)))
+                    (plist-get (cl-cdddr h) :cmd-name))
+              ali)
+        (push h res)))
     (nreverse res)))
 
 ;;* Macros
@@ -764,7 +756,7 @@ result of `defhydra'."
                (cl-mapcar
                 (lambda (head)
                   (let ((name (hydra--head-property head :cmd-name)))
-                    (unless (eq name 'hydra-exit)
+                    (when (cadr head)
                       (when (or body-key method)
                         (let ((bind (hydra--head-property head :bind 'default))
                               (final-key



reply via email to

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