Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 27 additions & 3 deletions evil-cleverparens-tests.el
Original file line number Diff line number Diff line change
Expand Up @@ -876,7 +876,15 @@ alpha (bravo (charlie delta) echo) foxtrot")))
"(alpha bravo)\n[]\n(charlie delta)"
(evil-cp-set-additional-bindings)
("\M-O" "echo")
"(alpha bravo)\necho[]\n\n(charlie delta)"))))
"(alpha bravo)\necho[]\n\n(charlie delta)")))
(let ((window-system t))
(ert-info ("Is unavailable under terminal")
(evil-cp-test-buffer
"(alpha (bravo [c]harlie) delta)"
(evil-cp-set-additional-bindings)
(setq window-system nil)
("\M-O") ;; same as "\M-o" since "\M-O" is unavailable
"(alpha (bravo charlie)\n[]delta)"))))

(ert-deftest evil-cp-yank-sexp-test ()
(ert-info ("Can yank a sexp")
Expand Down Expand Up @@ -1088,7 +1096,15 @@ india[]
(evil-cleverparens-mode t)
(evil-cp-set-additional-bindings)
("\C-u\M-[")
"alpha [«[»bravo charlie delta]] echo"))))
"alpha [«[»bravo charlie delta]] echo")))
(let ((window-system t))
(ert-info ("Is unavailable under terminal")
(evil-cp-test-buffer
"(alpha [b]ravo)"
(evil-cp-set-additional-bindings)
(setq window-system nil)
("\M-[")
"(alpha [b]ravo)"))))

(ert-deftest evil-cp-wrap-previous-square-test ()
(let ((window-system t))
Expand Down Expand Up @@ -1124,7 +1140,15 @@ india[]
(evil-cleverparens-mode t)
(evil-cp-set-additional-bindings)
("\C-u\M-]")
"alpha [[bravo charlie delta]«]» echo")))) ;; TODO inconsistent cursor with wrap-next-square
"alpha [[bravo charlie delta]«]» echo"))) ;; TODO inconsistent cursor with wrap-next-square
(let ((window-system t))
(ert-info ("Is unavailable under terminal")
(evil-cp-test-buffer
"(alpha [b]ravo)"
(evil-cp-set-additional-bindings)
(setq window-system nil)
("\M-]")
"(alpha [b]ravo)"))))

(ert-deftest evil-cp-wrap-next-curly-test ()
(ert-info ("Can wrap next sexp with curly braces")
Expand Down
19 changes: 14 additions & 5 deletions evil-cleverparens.el
Original file line number Diff line number Diff line change
Expand Up @@ -2178,6 +2178,15 @@ for normal, visual and operator states if
state
evil-cleverparens-use-additional-movement-keys)))

(defun evil-cp--wrap-graphical-binding (binding-pair)
"Wraps a key binding in a `menu-item' with a filter so that it is only
effective under graphical sessions."
(let ((key (car binding-pair))
(binding (cdr binding-pair)))
(cons key
`(menu-item "" ,binding :filter
,(lambda (binding) (if window-system binding))))))

;;;###autoload
(defun evil-cp-set-additional-bindings ()
"Sets the movement keys is `evil-cp-additional-bindings' for
Expand All @@ -2188,11 +2197,11 @@ true."
evil-cp-additional-bindings
'normal
evil-cleverparens-use-additional-bindings)
(when window-system
(evil-cp--populate-mode-bindings-for-state
evil-cp-additional-bindings-graphical
'normal
evil-cleverparens-use-additional-bindings)))
(evil-cp--populate-mode-bindings-for-state
(mapcar #'evil-cp--wrap-graphical-binding
evil-cp-additional-bindings-graphical)
'normal
evil-cleverparens-use-additional-bindings))

(defun evil-cp--enable-C-w-delete ()
(when evil-want-C-w-delete
Expand Down