summaryrefslogtreecommitdiff
path: root/test/lisp/use-package/use-package-tests.el
diff options
context:
space:
mode:
Diffstat (limited to 'test/lisp/use-package/use-package-tests.el')
-rw-r--r--test/lisp/use-package/use-package-tests.el85
1 files changed, 81 insertions, 4 deletions
diff --git a/test/lisp/use-package/use-package-tests.el b/test/lisp/use-package/use-package-tests.el
index 185f7691ba9..709c1988ffb 100644
--- a/test/lisp/use-package/use-package-tests.el
+++ b/test/lisp/use-package/use-package-tests.el
@@ -1964,15 +1964,92 @@
(autoload #'nonexistent-mode "nonexistent" nil t))
(add-hook 'lisp-mode-hook #'nonexistent-mode)))))
+(ert-deftest bind-key/:map ()
+ (match-expansion
+ (bind-keys
+ ("C-1" . command-1)
+ ("C-2" . command-2)
+ :map keymap-1
+ ("C-3" . command-3)
+ ("C-4" . command-4)
+ :map (keymap-2 keymap-3)
+ ("C-5" . command-5)
+ ("C-6" . command-6))
+ `(progn (bind-key "C-1" #'command-1 nil nil)
+ (bind-key "C-2" #'command-2 nil nil)
+ (bind-key "C-3" #'command-3 keymap-1 nil)
+ (bind-key "C-4" #'command-4 keymap-1 nil)
+ (bind-key "C-5" #'command-5 keymap-2 nil)
+ (bind-key "C-6" #'command-6 keymap-2 nil)
+ (bind-key "C-5" #'command-5 keymap-3 nil)
+ (bind-key "C-6" #'command-6 keymap-3 nil))))
+
(ert-deftest bind-key/:prefix-map ()
(match-expansion
- (bind-keys :prefix "<f1>"
- :prefix-map my/map)
+ (bind-keys ("C-1" . command-1)
+ :prefix "<f1>"
+ :prefix-map my/map
+ ("C-2" . command-2)
+ ("C-3" . command-3))
`(progn
+ (bind-key "C-1" #'command-1 nil nil)
(defvar my/map)
(define-prefix-command 'my/map)
- (bind-key "<f1>" 'my/map nil nil))))
-
+ (bind-key "<f1>" 'my/map nil nil)
+ (bind-key "C-2" #'command-2 my/map nil)
+ (bind-key "C-3" #'command-3 my/map nil))))
+
+(ert-deftest bind-key/:repeat-map-1 ()
+ ;; NOTE: This test is pulled from the discussion in issue #964,
+ ;; adjusting for the final syntax that was implemented.
+ (match-expansion
+ (bind-keys
+ ("C-c n" . git-gutter+-next-hunk)
+ ("C-c p" . git-gutter+-previous-hunk)
+ ("C-c s" . git-gutter+-stage-hunks)
+ ("C-c r" . git-gutter+-revert-hunk)
+ :repeat-map my/git-gutter+-repeat-map
+ ("n" . git-gutter+-next-hunk)
+ ("p" . git-gutter+-previous-hunk)
+ ("s" . git-gutter+-stage-hunks)
+ ("r" . git-gutter+-revert-hunk)
+ :repeat-docstring
+ "Keymap to repeat git-gutter+-* commands.")
+ `(progn
+ (bind-key "C-c n" #'git-gutter+-next-hunk nil nil)
+ (bind-key "C-c p" #'git-gutter+-previous-hunk nil nil)
+ (bind-key "C-c s" #'git-gutter+-stage-hunks nil nil)
+ (bind-key "C-c r" #'git-gutter+-revert-hunk nil nil)
+ (defvar my/git-gutter+-repeat-map (make-sparse-keymap))
+ (put #'git-gutter+-next-hunk 'repeat-map 'my/git-gutter+-repeat-map)
+ (bind-key "n" #'git-gutter+-next-hunk my/git-gutter+-repeat-map nil)
+ (put #'git-gutter+-previous-hunk 'repeat-map 'my/git-gutter+-repeat-map)
+ (bind-key "p" #'git-gutter+-previous-hunk my/git-gutter+-repeat-map nil)
+ (put #'git-gutter+-stage-hunks 'repeat-map 'my/git-gutter+-repeat-map)
+ (bind-key "s" #'git-gutter+-stage-hunks my/git-gutter+-repeat-map nil)
+ (put #'git-gutter+-revert-hunk 'repeat-map 'my/git-gutter+-repeat-map)
+ (bind-key "r" #'git-gutter+-revert-hunk my/git-gutter+-repeat-map nil)
+ (defvar my/git-gutter+-repeat-map (make-sparse-keymap) "Keymap to repeat git-gutter+-* commands."))))
+
+(ert-deftest bind-key/:repeat-map-2 ()
+ (match-expansion
+ (bind-keys :map m ("x" . cmd1) :repeat-map rm ("y" . cmd2))
+ `(progn
+ (bind-key "x" #'cmd1 m nil)
+ (defvar rm (make-sparse-keymap))
+ (put #'cmd2 'repeat-map 'rm)
+ (bind-key "y" #'cmd2 rm nil))))
+
+(ert-deftest bind-key/:repeat-map-3 ()
+ (match-expansion
+ (bind-keys :repeat-map rm ("y" . cmd2) :map m ("x" . cmd1))
+ `(progn
+ (defvar rm (make-sparse-keymap))
+ (put #'cmd2 'repeat-map 'rm)
+ (bind-key "y" #'cmd2 rm nil)
+ (defvar rm (make-sparse-keymap))
+ (put #'cmd1 'repeat-map 'rm)
+ (bind-key "x" #'cmd1 m nil))))
(ert-deftest bind-key/845 ()
(defvar test-map (make-keymap))