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

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

[nongnu] elpa/iedit e48b52e353 185/301: Merge branch 'incremental-select


From: ELPA Syncer
Subject: [nongnu] elpa/iedit e48b52e353 185/301: Merge branch 'incremental-select' of git://github.com/bmag/iedit into bmag-incremental-select
Date: Mon, 10 Jan 2022 22:59:01 -0500 (EST)

branch: elpa/iedit
commit e48b52e3537bc929bdc4bb009c4be8265453ec2b
Merge: d335d6842a adb0d2e92d
Author: Victor Ren <victorhge@gmail.com>
Commit: Victor Ren <victorhge@gmail.com>

    Merge branch 'incremental-select' of git://github.com/bmag/iedit into 
bmag-incremental-select
---
 iedit.el | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/iedit.el b/iedit.el
index 7bc992f98f..2e2f2a219d 100644
--- a/iedit.el
+++ b/iedit.el
@@ -245,6 +245,8 @@ This is like `describe-bindings', but displays only Iedit 
keys."
     (define-key map (kbd "M-I") 'iedit-restrict-current-line)
     (define-key map (kbd "M-{") 'iedit-expand-up-a-line)
     (define-key map (kbd "M-}") 'iedit-expand-down-a-line)
+    (define-key map (kbd "M-[") 'iedit-expand-up-to-occurence)
+    (define-key map (kbd "M-]") 'iedit-expand-down-to-occurence)
     (define-key map (kbd "M-G") 'iedit-apply-global-modification)
     (define-key map (kbd "M-C") 'iedit-toggle-case-sensitive)
     map)
@@ -592,6 +594,38 @@ the region back up one line."
   (iedit-expand-by-a-line 'bottom
                           (if arg -1 1)))
 
+(defun iedit-down-occurence-pos ()
+  "Get position of next occurence past `iedit-last-occurrence'"
+  (save-excursion
+    (goto-char (1+ (iedit-last-occurrence)))
+    (search-forward-regexp (iedit-current-occurrence-string))))
+
+(defun iedit-expand-down-to-occurence ()
+  "Expand the search region downwards until reaching a new occurence.
+If no such occurence can be found, throw an error."
+  (interactive)
+  (let ((last-pos (iedit-last-occurrence))
+        (next-pos (iedit-down-occurence-pos)))
+    (iedit-expand-by-a-line 'bottom
+                            (- (line-number-at-pos next-pos)
+                               (line-number-at-pos last-pos)))))
+
+(defun iedit-up-occurrence-pos ()
+  "Get position of next occurence past `iedit-first-occurrence'"
+  (save-excursion
+    (goto-char (iedit-first-occurrence))
+    (search-backward-regexp (iedit-current-occurrence-string))))
+
+(defun iedit-expand-up-to-occurence ()
+  "Expand the search region upwards until reaching a new occurence.
+If no such occurence can be found, throw an error."
+  (interactive)
+  (let ((first-pos (iedit-first-occurrence))
+        (prev-pos (iedit-up-occurrence-pos)))
+    (iedit-expand-by-a-line 'top
+                            (- (line-number-at-pos first-pos)
+                               (line-number-at-pos prev-pos)))))
+
 (defun iedit-restrict-region (beg end &optional inclusive)
   "Restricting Iedit mode in a region."
   (when iedit-buffering



reply via email to

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