do-repeat! -> set-repeater!

Macro was renamed to be consistent with other autodefs

- Make these repeaters buffer-local
- Don't bind repeater if motion failed
- Defer evil-snipe repeaters until evil-snipe is loaded
This commit is contained in:
Henrik Lissner 2019-04-23 15:20:38 -04:00
parent 8399143901
commit 5df4a2f18e
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -795,40 +795,41 @@ This is a cons cell whose CAR is the key for repeating a motion forward, and
whose CDR is for repeating backward. They should both be kbd-able strings.") whose CDR is for repeating backward. They should both be kbd-able strings.")
(when +default-repeat-keys (when +default-repeat-keys
(defmacro do-repeat! (command next-func prev-func) (defmacro set-repeater! (command next-func prev-func)
"Makes ; and , the universal repeat-keys in evil-mode. "Makes ; and , the universal repeat-keys in evil-mode.
To change these keys see `+default-repeat-keys'." To change these keys see `+default-repeat-keys'."
(let ((fn-sym (intern (format "+default*repeat-%s" (doom-unquote command))))) (let ((fn-sym (intern (format "+default*repeat-%s" (doom-unquote command)))))
`(progn `(progn
(defun ,fn-sym (&rest _) (defun ,fn-sym (&rest _)
(define-key! :states 'motion (evil-define-key* 'motion 'local
(car +default-repeat-keys) #',next-func (kbd (car +default-repeat-keys)) #',next-func
(cdr +default-repeat-keys) #',prev-func)) (kbd (cdr +default-repeat-keys)) #',prev-func))
(advice-add #',command :before #',fn-sym)))) (advice-add #',command :after-while #',fn-sym))))
;; n/N ;; n/N
(do-repeat! evil-ex-search-next evil-ex-search-next evil-ex-search-previous) (set-repeater! evil-ex-search-next evil-ex-search-next evil-ex-search-previous)
(do-repeat! evil-ex-search-previous evil-ex-search-next evil-ex-search-previous) (set-repeater! evil-ex-search-previous evil-ex-search-next evil-ex-search-previous)
(do-repeat! evil-ex-search-forward evil-ex-search-next evil-ex-search-previous) (set-repeater! evil-ex-search-forward evil-ex-search-next evil-ex-search-previous)
(do-repeat! evil-ex-search-backward evil-ex-search-next evil-ex-search-previous) (set-repeater! evil-ex-search-backward evil-ex-search-next evil-ex-search-previous)
;; f/F/t/T/s/S ;; f/F/t/T/s/S
(setq evil-snipe-repeat-keys nil (after! evil-snipe
evil-snipe-override-evil-repeat-keys nil) ; causes problems with remapped ; (setq evil-snipe-repeat-keys nil
(do-repeat! evil-snipe-f evil-snipe-repeat evil-snipe-repeat-reverse) evil-snipe-override-evil-repeat-keys nil) ; causes problems with remapped ;
(do-repeat! evil-snipe-F evil-snipe-repeat evil-snipe-repeat-reverse) (set-repeater! evil-snipe-f evil-snipe-repeat evil-snipe-repeat-reverse)
(do-repeat! evil-snipe-t evil-snipe-repeat evil-snipe-repeat-reverse) (set-repeater! evil-snipe-F evil-snipe-repeat evil-snipe-repeat-reverse)
(do-repeat! evil-snipe-T evil-snipe-repeat evil-snipe-repeat-reverse) (set-repeater! evil-snipe-t evil-snipe-repeat evil-snipe-repeat-reverse)
(do-repeat! evil-snipe-s evil-snipe-repeat evil-snipe-repeat-reverse) (set-repeater! evil-snipe-T evil-snipe-repeat evil-snipe-repeat-reverse)
(do-repeat! evil-snipe-S evil-snipe-repeat evil-snipe-repeat-reverse) (set-repeater! evil-snipe-s evil-snipe-repeat evil-snipe-repeat-reverse)
(do-repeat! evil-snipe-x evil-snipe-repeat evil-snipe-repeat-reverse) (set-repeater! evil-snipe-S evil-snipe-repeat evil-snipe-repeat-reverse)
(do-repeat! evil-snipe-X evil-snipe-repeat evil-snipe-repeat-reverse) (set-repeater! evil-snipe-x evil-snipe-repeat evil-snipe-repeat-reverse)
(set-repeater! evil-snipe-X evil-snipe-repeat evil-snipe-repeat-reverse))
;; */# ;; */#
(do-repeat! evil-visualstar/begin-search-forward (set-repeater! evil-visualstar/begin-search-forward
evil-ex-search-next evil-ex-search-previous) evil-ex-search-next evil-ex-search-previous)
(do-repeat! evil-visualstar/begin-search-backward (set-repeater! evil-visualstar/begin-search-backward
evil-ex-search-previous evil-ex-search-next)) evil-ex-search-previous evil-ex-search-next))
;; ;;