diff options
| -rw-r--r-- | evil-ex.el | 9 | ||||
| -rw-r--r-- | evil-vars.el | 3 |
2 files changed, 12 insertions, 0 deletions
@@ -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 5bf1d17..b24004f 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.") |
