From 005a07b416554941185cf4b0426ab05310f4629c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 18 Oct 2018 19:41:29 -0400 Subject: [PATCH] +evil:apply-macro: fix operator & fail gracefully Formly, this would fail silently. This has been rewritten to let you know if no macro is available at a register. It will also inform you how many times the macro was executed. Also fixes g@ not invoking the operator state. --- modules/feature/evil/autoload/evil.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/feature/evil/autoload/evil.el b/modules/feature/evil/autoload/evil.el index 39aef130c..37988b8b2 100644 --- a/modules/feature/evil/autoload/evil.el +++ b/modules/feature/evil/autoload/evil.el @@ -122,7 +122,6 @@ integration." ;;;###autoload (autoload '+evil:apply-macro "feature/evil/autoload/evil" nil t) (evil-define-operator +evil:apply-macro (beg end) "Apply macro to each line." - :motion nil :move-point nil (interactive "") (let ((register (or evil-this-register (read-char))) @@ -137,9 +136,14 @@ integration." (setq macro (evil-get-register evil-last-register t))) ((setq macro (evil-get-register register t) evil-last-register register))) + (unless macro + (user-error "No macro recorded in %c register" register)) (evil-change-state 'normal) (evil-with-single-undo - (apply-macro-to-region-lines beg end macro)))) + (let ((lines (count-lines beg end))) + (message "Applied macro in %c register %d times" register lines) + (apply-macro-to-region-lines beg end macro) + (message "Applied macro in %c register %d times...DONE" register lines))))) ;;;###autoload (autoload '+evil:retab "feature/evil/autoload/evil" nil t) (evil-define-operator +evil:retab (&optional beg end)