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

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

[nongnu] elpa/iedit 1242c675d2 164/301: Add save-window-excursion


From: ELPA Syncer
Subject: [nongnu] elpa/iedit 1242c675d2 164/301: Add save-window-excursion
Date: Mon, 10 Jan 2022 22:58:59 -0500 (EST)

branch: elpa/iedit
commit 1242c675d22423fd1a7df2ea724190670578086b
Author: Victor Ren <victorhge@gmail.com>
Commit: Victor Ren <victorhge@gmail.com>

    Add save-window-excursion
---
 iedit-lib.el | 38 ++++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/iedit-lib.el b/iedit-lib.el
index 0b3d5e5de5..6c155ceba0 100644
--- a/iedit-lib.el
+++ b/iedit-lib.el
@@ -3,7 +3,7 @@
 
 ;; Copyright (C) 2010, 2011, 2012 Victor Ren
 
-;; Time-stamp: <2013-02-11 22:27:12 Victor Ren>
+;; Time-stamp: <2013-03-02 22:41:36 Victor Ren>
 ;; Author: Victor Ren <victorhge@gmail.com>
 ;; Keywords: occurrence region simultaneous rectangle refactoring
 ;; Version: 0.97
@@ -206,23 +206,25 @@ Return the number of occurrences."
   (let ((counter 0)
         (case-fold-search (not iedit-case-sensitive)))
     (save-excursion
-      (goto-char end)
-      (recenter)
-      (goto-char beg)
-      (while (re-search-forward occurrence-regexp end t)
-        (let ((beginning (match-beginning 0))
-              (ending (match-end 0)))
-          (if (text-property-not-all beginning ending 'read-only nil)
-              (push (iedit-make-read-only-occurrence-overlay beginning ending)
-                    iedit-read-only-occurrences-overlays)
-            (push (iedit-make-occurrence-overlay beginning ending)
-                  iedit-occurrences-overlays))
-          (setq counter (1+ counter))))
-      (message "%d matches for \"%s\"" counter (iedit-printable 
occurrence-regexp))
-      (when (/= 0 counter)
-        (if iedit-unmatched-lines-invisible
-            (iedit-hide-unmatched-lines iedit-occurrence-context-lines))))
-    counter))
+      (save-window-excursion
+        (goto-char end)
+        ;; todo: figure out why re-search-forward is slow without "recenter"
+        (recenter)
+        (goto-char beg)
+        (while (re-search-forward occurrence-regexp end t)
+          (let ((beginning (match-beginning 0))
+                (ending (match-end 0)))
+            (if (text-property-not-all beginning ending 'read-only nil)
+                (push (iedit-make-read-only-occurrence-overlay beginning 
ending)
+                      iedit-read-only-occurrences-overlays)
+              (push (iedit-make-occurrence-overlay beginning ending)
+                    iedit-occurrences-overlays))
+            (setq counter (1+ counter))))
+        (message "%d matches for \"%s\"" counter (iedit-printable 
occurrence-regexp))
+        (when (/= 0 counter)
+          (if iedit-unmatched-lines-invisible
+              (iedit-hide-unmatched-lines iedit-occurrence-context-lines))))
+      counter)))
 
 (defun iedit-add-next-occurrence-overlay (occurrence-exp &optional point)
   "Create next occurrence overlay for `occurrence-exp'."



reply via email to

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