branch: elpa/evil commit 73014826e98c910b98b31a0317f5b5ccd250b941 Author: Tom Dalziel <tom...@hotmail.com> Commit: Tom Dalziel <33435574+tomd...@users.noreply.github.com>
Prompt user to reverse reversed ex range Fixes #1628 --- evil-ex.el | 9 +++++++++ evil-vars.el | 3 +++ 2 files changed, 12 insertions(+) diff --git a/evil-ex.el b/evil-ex.el index 3120e791e4..2546cc1c46 100644 --- a/evil-ex.el +++ b/evil-ex.el @@ -721,6 +721,10 @@ This function interprets special file names like # and %." (set-text-properties 0 (length evil-ex-argument) nil evil-ex-argument)) (let ((buf (current-buffer))) + (when evil-ex-reverse-range + (setq evil-ex-reverse-range nil) + (unless (y-or-n-p "Backward range given, OK to swap? ") + (user-error "Ex command cancelled"))) (unwind-protect (cond ((not evil-ex-range) @@ -773,6 +777,11 @@ This function interprets special file names like # and %." (defun evil-ex-range (beg-line &optional end-line) "Returns the first and last position of the current range." + (when (and end-line (< end-line beg-line)) + (setq evil-ex-reverse-range t) + (let ((beg-line* beg-line)) + (setq beg-line end-line + end-line beg-line*))) (evil-range (evil-line-position beg-line) (evil-line-position (or end-line beg-line) -1) diff --git a/evil-vars.el b/evil-vars.el index 5bf1d17f58..b24004f6f1 100644 --- a/evil-vars.el +++ b/evil-vars.el @@ -1890,6 +1890,9 @@ See `evil-ex-init-shell-argument-completion'.") (defvar evil-ex-tree nil "The syntax tree.") +(defvar evil-ex-reverse-range nil + "Whether the current ex range was entered reversed.") + (defvar evil-ex-command nil "The current Ex command.")