emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/evil 652d726: Handle more registers and range types in ex


From: ELPA Syncer
Subject: [nongnu] elpa/evil 652d726: Handle more registers and range types in ex grammar (#1556)
Date: Thu, 23 Dec 2021 12:57:58 -0500 (EST)

branch: elpa/evil
commit 652d726ebd8cdfcac3e97a801721f33b5b832a0a
Author: Brian Leung <29217594+leungbk@users.noreply.github.com>
Commit: GitHub <noreply@github.com>

    Handle more registers and range types in ex grammar (#1556)
    
    * evil-ex.el (evil-ex-grammar): Handle ] and [ registers
    
    Co-authored-by: Brian Leung <leungbk@posteo.net>
    Co-authored-by: Tom Dalziel <tom_dl@hotmail.com>
    
    * evil-ex (evil-ex-grammar): Handle more range types
    
    * evil-ex.el (evil-ex-grammar): Handle comma- or semicolon-separated
    ranges that omit the first argument. The current line will be used as
    the input.
    
    Co-authored-by: Brian Leung <leungbk@posteo.net>
    
    Co-authored-by: Nathaniel Nicandro <nathanielnicandro@gmail.com>
    Co-authored-by: Tom Dalziel <tom_dl@hotmail.com>
---
 evil-ex.el    |  7 +++++--
 evil-tests.el | 22 ++++++++++++++++++++++
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/evil-ex.el b/evil-ex.el
index bb7cd46..19875ac 100644
--- a/evil-ex.el
+++ b/evil-ex.el
@@ -67,13 +67,14 @@
     (range
      ("%" #'(evil-ex-full-range))
      ("*" #'(evil-ex-last-visual-range))
+     ((alt "," ";") line #'(evil-ex-range (evil-ex-current-line) $2))
      (line ";" line #'(let ((tmp1 $1))
                         (save-excursion
                           (goto-line tmp1)
                           (evil-ex-range tmp1 $3))))
      (line "," line #'(evil-ex-range $1 $3))
      (line #'(evil-ex-range $1 nil))
-     ("`" "[-a-zA-Z_<>']" ",`" "[-a-zA-Z_<>']"
+     ("`" marker-name ",`" marker-name
       #'(evil-ex-char-marker-range $2 $4)))
     (line
      (base (\? offset) search (\? offset)
@@ -98,7 +99,7 @@
     (offset
      (+ signed-number #'+))
     (marker
-     ("'" "[-a-zA-Z_<>']" #'(evil-ex-marker $2)))
+     ("'" marker-name #'(evil-ex-marker $2)))
     (search
      forward
      backward
@@ -115,6 +116,8 @@
       #'(evil-ex-re-bwd $2))
      ("\\?" "\\(?:[\\].\\|[^?]\\)+" "\\?"
       #'(evil-ex-re-bwd $2)))
+    (marker-name
+     "[]\\[-a-zA-Z_<>']")
     (next
      "\\\\/" #'(evil-ex-prev-search))
     (prev
diff --git a/evil-tests.el b/evil-tests.el
index 8212efc..be03b05 100644
--- a/evil-tests.el
+++ b/evil-tests.el
@@ -7192,6 +7192,8 @@ if no previous selection")
                    (evil-ex-line (evil-ex-marker "x") nil))))
   (should (equal (evil-ex-parse "`x,`y" nil 'range)
                  '(evil-ex-char-marker-range "x" "y")))
+  (should (equal (evil-ex-parse "`[,`]" nil 'range)
+                 '(evil-ex-char-marker-range "[" "]")))
   (should (equal (evil-ex-parse "5,+" nil 'range)
                  '(evil-ex-range
                    (evil-ex-line (string-to-number "5") nil)
@@ -7244,6 +7246,26 @@ if no previous selection")
                     (evil-ex-last-line)
                     (+ (evil-ex-signed-number
                         (intern "-") (string-to-number "10")))))))
+  (should (equal (evil-ex-parse "'[,']" nil 'range)
+                 '(evil-ex-range
+                   (evil-ex-line
+                    (evil-ex-marker "[")
+                    nil)
+                   (evil-ex-line
+                    (evil-ex-marker "]")
+                    nil))))
+  (should (equal (evil-ex-parse ",']" nil 'range)
+                 '(evil-ex-range
+                   (evil-ex-current-line)
+                   (evil-ex-line
+                    (evil-ex-marker "]")
+                    nil))))
+  (should (equal (evil-ex-parse ";']" nil 'range)
+                 '(evil-ex-range
+                   (evil-ex-current-line)
+                   (evil-ex-line
+                    (evil-ex-marker "]")
+                    nil))))
   (should (equal (evil-ex-parse ".+42" nil 'range)
                  '(evil-ex-range
                    (evil-ex-line



reply via email to

[Prev in Thread] Current Thread [Next in Thread]