feature/evil: fix +evil:macro-on-all-lines

This commit is contained in:
Henrik Lissner 2018-03-24 07:11:15 -04:00
parent 70b49282a3
commit f822fffdd2
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -73,18 +73,29 @@ evil-window-move-* (e.g. `evil-window-move-far-left')"
(defun +evil/window-move-down () "See `+evil--window-swap'" (interactive) (+evil--window-swap 'down)) (defun +evil/window-move-down () "See `+evil--window-swap'" (interactive) (+evil--window-swap 'down))
;;;###autoload (autoload '+evil:macro-on-all-lines "feature/evil/autoload/evil" nil t) ;;;###autoload (autoload '+evil:macro-on-all-lines "feature/evil/autoload/evil" nil t)
(evil-define-operator +evil:macro-on-all-lines (beg end &optional macro) (evil-define-command +evil:macro-on-all-lines (beg end macro)
"Apply macro to each line." "Apply macro to each line."
:motion nil :move-point t
:move-point nil :keep-visual t
(interactive "<r><a>") (interactive
(unless (and beg end) (let (macro register)
(setq beg (region-beginning) (setq register (or evil-this-register (read-char)))
end (region-end))) (cond
(evil-ex-normal beg end ((or (and (eq register ?@) (eq evil-last-register ?:))
(concat "@" (eq register ?:))
(single-key-description (setq macro (lambda () (evil-ex-repeat nil))
(or macro (read-char "@-")))))) evil-last-register ?:))
((eq register ?@)
(unless evil-last-register
(user-error "No previously executed keyboard macro."))
(setq macro (evil-get-register evil-last-register t)))
(t
(setq macro (evil-get-register register t)
evil-last-register register)))
(list evil-visual-beginning evil-visual-end macro)))
(evil-change-state 'normal)
(evil-with-single-undo
(apply-macro-to-region-lines beg end macro)))
;;;###autoload (autoload '+evil:retab "feature/evil/autoload/evil" nil t) ;;;###autoload (autoload '+evil:retab "feature/evil/autoload/evil" nil t)
(evil-define-operator +evil:retab (&optional beg end) (evil-define-operator +evil:retab (&optional beg end)