]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/hydra/hydra-test.el
Merge commit 'b963c70dcf211c86d4bb03bfd4a20c6807cbe679' from hydra
[gnu-emacs-elpa] / packages / hydra / hydra-test.el
index f3b3c278b4fc485fa50ab2e97ce8a58511f9a770..07d0a743599ade5d5ae306851e631e1077875bf9 100644 (file)
@@ -36,8 +36,7 @@
        ("j" next-error "next")
        ("k" previous-error "prev")))
     '(progn
-      (defun hydra-error/first-error ()
-        "Create a hydra with a \"M-g\" body and the heads:
+      (defun hydra-error/first-error nil "Create a hydra with a \"M-g\" body and the heads:
 
 \"h\":    `first-error',
 \"j\":    `next-error',
 The body can be accessed via `hydra-error/body'.
 
 Call the head: `first-error'."
-        (interactive)
-        (call-interactively #'first-error)
-        (when hydra-is-helpful
-          (message #("error: [h]: first, [j]: next, [k]: prev."
-                     8 9 (face font-lock-keyword-face)
-                     20 21 (face font-lock-keyword-face)
-                     31 32 (face font-lock-keyword-face))))
-        (setq hydra-last
-              (hydra-set-transient-map
-               '(keymap
-                 (107 . hydra-error/previous-error)
-                 (106 . hydra-error/next-error)
-                 (104 . hydra-error/first-error)) t)))
-
-      (defun hydra-error/next-error ()
-        "Create a hydra with a \"M-g\" body and the heads:
+             (interactive)
+             (when hydra-is-helpful (message #("error: [h]: first, [j]: next, [k]: prev." 8 9 (face hydra-face-red)
+                                               20 21 (face hydra-face-red)
+                                               31 32 (face hydra-face-red))))
+             (setq hydra-last
+                   (hydra-set-transient-map
+                    (setq hydra-curr-map '(keymap (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)))
+                    t))
+             (call-interactively (function first-error)))
+      (defun hydra-error/next-error nil "Create a hydra with a \"M-g\" body and the heads:
 
 \"h\":    `first-error',
 \"j\":    `next-error',
@@ -70,22 +88,41 @@ Call the head: `first-error'."
 The body can be accessed via `hydra-error/body'.
 
 Call the head: `next-error'."
-        (interactive)
-        (call-interactively #'next-error)
-        (when hydra-is-helpful
-          (message #("error: [h]: first, [j]: next, [k]: prev."
-                     8 9 (face font-lock-keyword-face)
-                     20 21 (face font-lock-keyword-face)
-                     31 32 (face font-lock-keyword-face))))
-        (setq hydra-last
-              (hydra-set-transient-map
-               '(keymap
-                 (107 . hydra-error/previous-error)
-                 (106 . hydra-error/next-error)
-                 (104 . hydra-error/first-error)) t)))
-
-      (defun hydra-error/previous-error ()
-        "Create a hydra with a \"M-g\" body and the heads:
+             (interactive)
+             (when hydra-is-helpful (message #("error: [h]: first, [j]: next, [k]: prev." 8 9 (face hydra-face-red)
+                                               20 21 (face hydra-face-red)
+                                               31 32 (face hydra-face-red))))
+             (setq hydra-last
+                   (hydra-set-transient-map
+                    (setq hydra-curr-map '(keymap (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)))
+                    t))
+             (call-interactively (function next-error)))
+      (defun hydra-error/previous-error nil "Create a hydra with a \"M-g\" body and the heads:
 
 \"h\":    `first-error',
 \"j\":    `next-error',
@@ -94,46 +131,89 @@ Call the head: `next-error'."
 The body can be accessed via `hydra-error/body'.
 
 Call the head: `previous-error'."
-        (interactive)
-        (call-interactively #'previous-error)
-        (when hydra-is-helpful
-          (message #("error: [h]: first, [j]: next, [k]: prev."
-                     8 9 (face font-lock-keyword-face)
-                     20 21 (face font-lock-keyword-face)
-                     31 32 (face font-lock-keyword-face))))
-        (setq hydra-last
-              (hydra-set-transient-map
-               '(keymap
-                 (107 . hydra-error/previous-error)
-                 (106 . hydra-error/next-error)
-                 (104 . hydra-error/first-error)) t)))
-
+             (interactive)
+             (when hydra-is-helpful (message #("error: [h]: first, [j]: next, [k]: prev." 8 9 (face hydra-face-red)
+                                               20 21 (face hydra-face-red)
+                                               31 32 (face hydra-face-red))))
+             (setq hydra-last
+                   (hydra-set-transient-map
+                    (setq hydra-curr-map '(keymap (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)))
+                    t))
+             (call-interactively (function previous-error)))
       (unless (keymapp (lookup-key global-map (kbd "M-g")))
-        (define-key global-map (kbd "M-g") nil))
-      (define-key global-map [134217831 104] #'hydra-error/first-error)
-      (define-key global-map [134217831 106] #'hydra-error/next-error)
-      (define-key global-map [134217831 107] #'hydra-error/previous-error)
-
-      (defun hydra-error/body ()
-        "Create a hydra with a \"M-g\" body and the heads:
+        (define-key global-map (kbd "M-g")
+          nil))
+      (define-key global-map [134217831 104]
+       (function hydra-error/first-error))
+      (define-key global-map [134217831 106]
+       (function hydra-error/next-error))
+      (define-key global-map [134217831 107]
+       (function hydra-error/previous-error))
+      (defun hydra-error/body nil "Create a hydra with a \"M-g\" body and the heads:
 
 \"h\":    `first-error',
 \"j\":    `next-error',
 \"k\":    `previous-error'
 
 The body can be accessed via `hydra-error/body'."
-        (interactive)
-        (when hydra-is-helpful
-          (message #("error: [h]: first, [j]: next, [k]: prev."
-                     8 9 (face font-lock-keyword-face)
-                     20 21 (face font-lock-keyword-face)
-                     31 32 (face font-lock-keyword-face))))
-        (setq hydra-last
-              (hydra-set-transient-map
-               '(keymap
-                 (107 . hydra-error/previous-error)
-                 (106 . hydra-error/next-error)
-                 (104 . hydra-error/first-error)) t)))))))
+             (interactive)
+             (when hydra-is-helpful (message #("error: [h]: first, [j]: next, [k]: prev." 8 9 (face hydra-face-red)
+                                               20 21 (face hydra-face-red)
+                                               31 32 (face hydra-face-red))))
+             (setq hydra-last
+                   (hydra-set-transient-map
+                    '(keymap (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))
+                    t)))))))
 
 (ert-deftest hydra-blue-toggle ()
   (should
@@ -146,8 +226,7 @@ The body can be accessed via `hydra-error/body'."
        ("a" abbrev-mode "abbrev")
        ("q" nil "cancel")))
     '(progn
-      (defun toggle/toggle-truncate-lines ()
-        "Create a hydra with no body and the heads:
+      (defun toggle/toggle-truncate-lines nil "Create a hydra with no body and the heads:
 
 \"t\":    `toggle-truncate-lines',
 \"f\":    `auto-fill-mode',
@@ -157,11 +236,10 @@ The body can be accessed via `hydra-error/body'."
 The body can be accessed via `toggle/body'.
 
 Call the head: `toggle-truncate-lines'."
-        (interactive)
-        (hydra-disable)
-        (call-interactively #'toggle-truncate-lines))
-      (defun toggle/auto-fill-mode ()
-        "Create a hydra with no body and the heads:
+             (interactive)
+             (hydra-disable)
+             (call-interactively (function toggle-truncate-lines)))
+      (defun toggle/auto-fill-mode nil "Create a hydra with no body and the heads:
 
 \"t\":    `toggle-truncate-lines',
 \"f\":    `auto-fill-mode',
@@ -171,11 +249,10 @@ Call the head: `toggle-truncate-lines'."
 The body can be accessed via `toggle/body'.
 
 Call the head: `auto-fill-mode'."
-        (interactive)
-        (hydra-disable)
-        (call-interactively #'auto-fill-mode))
-      (defun toggle/abbrev-mode ()
-        "Create a hydra with no body and the heads:
+             (interactive)
+             (hydra-disable)
+             (call-interactively (function auto-fill-mode)))
+      (defun toggle/abbrev-mode nil "Create a hydra with no body and the heads:
 
 \"t\":    `toggle-truncate-lines',
 \"f\":    `auto-fill-mode',
@@ -185,11 +262,10 @@ Call the head: `auto-fill-mode'."
 The body can be accessed via `toggle/body'.
 
 Call the head: `abbrev-mode'."
-        (interactive)
-        (hydra-disable)
-        (call-interactively #'abbrev-mode))
-      (defun toggle/nil ()
-        "Create a hydra with no body and the heads:
+             (interactive)
+             (hydra-disable)
+             (call-interactively (function abbrev-mode)))
+      (defun toggle/nil nil "Create a hydra with no body and the heads:
 
 \"t\":    `toggle-truncate-lines',
 \"f\":    `auto-fill-mode',
@@ -199,10 +275,9 @@ Call the head: `abbrev-mode'."
 The body can be accessed via `toggle/body'.
 
 Call the head: `nil'."
-        (interactive)
-        (hydra-disable))
-      (defun toggle/body ()
-        "Create a hydra with no body and the heads:
+             (interactive)
+             (hydra-disable))
+      (defun toggle/body nil "Create a hydra with no body and the heads:
 
 \"t\":    `toggle-truncate-lines',
 \"f\":    `auto-fill-mode',
@@ -210,20 +285,41 @@ Call the head: `nil'."
 \"q\":    `nil'
 
 The body can be accessed via `toggle/body'."
-        (interactive)
-        (when hydra-is-helpful
-          (message #("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))))
-        (setq hydra-last
-              (hydra-set-transient-map
-               '(keymap (113 . toggle/nil)
-                 (97 . toggle/abbrev-mode)
-                 (102 . toggle/auto-fill-mode)
-                 (116 . toggle/toggle-truncate-lines))
-               t)))))))
+             (interactive)
+             (when hydra-is-helpful (message #("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))))
+             (setq hydra-last
+                   (hydra-set-transient-map
+                    '(keymap (113 . toggle/nil)
+                      (97 . toggle/abbrev-mode)
+                      (102 . toggle/auto-fill-mode)
+                      (116 . toggle/toggle-truncate-lines)
+                      (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))
+                    t)))))))
 
 (provide 'hydra-test)