consult, imenu: Declare some navigation commands to be non-repeatable (#653)
It does not make sense to repeat these commands via evil-repeat. (It also doesn't work) We typically use evil-repeat for commands that change the buffer contents.
This commit is contained in:
parent
91e55503b4
commit
e1eed25979
|
@ -52,12 +52,14 @@
|
||||||
|
|
||||||
(defun evil-collection-consult-set-bindings ()
|
(defun evil-collection-consult-set-bindings ()
|
||||||
"Set the bindings."
|
"Set the bindings."
|
||||||
(evil-set-command-property 'consult-outline :jump t)
|
(dolist (cmd '(consult-outline
|
||||||
(evil-set-command-property 'consult-mark :jump t)
|
consult-mark
|
||||||
(evil-set-command-property 'consult-global-mark :jump t)
|
consult-global-mark
|
||||||
(evil-set-command-property 'consult-imenu :jump t)
|
consult-imenu
|
||||||
(evil-set-command-property 'consult-org-heading :jump t)
|
consult-org-heading
|
||||||
(evil-set-command-property 'consult-line :jump t))
|
consult-line))
|
||||||
|
(evil-declare-not-repeat cmd)
|
||||||
|
(evil-set-command-property cmd :jump t)))
|
||||||
|
|
||||||
(defun evil-collection-consult--evil-mark-ring ()
|
(defun evil-collection-consult--evil-mark-ring ()
|
||||||
"Return alist of char & marker for evil markers in current buffer."
|
"Return alist of char & marker for evil markers in current buffer."
|
||||||
|
@ -78,14 +80,14 @@ as defined in `evil-collection-consult--evil-mark-ring'."
|
||||||
(let* ((candidates)
|
(let* ((candidates)
|
||||||
(current-buf (current-buffer)))
|
(current-buf (current-buffer)))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(dolist (marker (or markers (evil-collection-consult--evil-mark-ring)))
|
(pcase-dolist (`(,char . ,marker) (or markers (evil-collection-consult--evil-mark-ring)))
|
||||||
(let ((pos (marker-position (cdr marker)))
|
(let ((pos (marker-position marker))
|
||||||
(buf (marker-buffer (cdr marker))))
|
(buf (marker-buffer marker)))
|
||||||
(when (and (eq buf current-buf)
|
(when (and (eq buf current-buf)
|
||||||
(consult--in-range-p pos))
|
(consult--in-range-p pos))
|
||||||
(goto-char pos)
|
(goto-char pos)
|
||||||
(push (consult--location-candidate
|
(push (consult--location-candidate
|
||||||
(format "%s: %s" (char-to-string (car marker)) (consult--line-with-cursor (cdr marker))) (cdr marker)
|
(format "%s: %s" (char-to-string char) (consult--line-with-cursor marker)) marker
|
||||||
(line-number-at-pos pos consult-line-numbers-widen))
|
(line-number-at-pos pos consult-line-numbers-widen))
|
||||||
candidates)))))
|
candidates)))))
|
||||||
(nreverse (delete-dups candidates))))
|
(nreverse (delete-dups candidates))))
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun evil-collection-imenu-setup ()
|
(defun evil-collection-imenu-setup ()
|
||||||
"Set up Evil integration for `imenu'."
|
"Set up Evil integration for `imenu'."
|
||||||
|
(evil-declare-not-repeat 'imenu)
|
||||||
(evil-add-command-properties 'imenu :jump t))
|
(evil-add-command-properties 'imenu :jump t))
|
||||||
|
|
||||||
(provide 'evil-collection-imenu)
|
(provide 'evil-collection-imenu)
|
||||||
|
|
Loading…
Reference in New Issue