[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/iedit 011e8d354c 016/301: Performance optimization of iedi
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/iedit 011e8d354c 016/301: Performance optimization of iedit-occurrence-update |
Date: |
Mon, 10 Jan 2022 22:58:46 -0500 (EST) |
branch: elpa/iedit
commit 011e8d354c58194d04a9fd353d580aafdc0567bb
Author: Victor Ren <victorhge@gmail.com>
Commit: Victor Ren <victorhge@gmail.com>
Performance optimization of iedit-occurrence-update
---
iedit.el | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/iedit.el b/iedit.el
index f710989ab7..ab1c194dee 100644
--- a/iedit.el
+++ b/iedit.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2010, 2011, 2012 Victor Ren
-;; Time-stamp: <2012-01-17 02:58:46 Victor Ren>
+;; Time-stamp: <2012-01-19 16:21:18 Victor Ren>
;; Author: Victor Ren <victorhge@gmail.com>
;; Keywords: occurrence region replace simultaneous
;; Version: 0.91
@@ -373,16 +373,19 @@ This modification hook is triggered when a user edits any
occurrence and is responsible for updating all other
occurrences."
(when (and after (not undo-in-progress)) ; undo will do all the work
- (let ((value (buffer-substring (overlay-start occurrence) (overlay-end
occurrence)))
- (inhibit-modification-hooks t))
+ (let ((inhibit-modification-hooks t)
+ (offset (- beg (overlay-start occurrence))))
(save-excursion
- (dolist (like-occurrence iedit-occurrences-overlays)
- (if (not (eq like-occurrence occurrence))
- (progn
- (goto-char (overlay-start like-occurrence))
- (delete-region (overlay-start like-occurrence)
- (overlay-end like-occurrence))
- (insert value))))))))
+ (if (eq 0 change) ; insertion
+ (let ((value (buffer-substring beg end)))
+ (dolist (like-occurrence (remove occurrence
iedit-occurrences-overlays))
+ (progn
+ (goto-char (+ (overlay-start like-occurrence) offset))
+ (insert value))))
+ (dolist (like-occurrence (remove occurrence
iedit-occurrences-overlays))
+ (let* ((beginning (+ (overlay-start like-occurrence) offset))
+ (ending (+ beginning change)))
+ (delete-region beginning ending))))))))
(defun iedit-next-occurrence ()
"Move forward to the next occurrence in the `iedit'.
- [nongnu] branch elpa/iedit created (now 3bd4c15e3d), ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit e9a94852d8 001/301: updates, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 69d6c03e06 009/301: Fix syntax error, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 9a891d7abf 002/301: updates, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit ec6785b0d2 008/301: host on git, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit f808bf1ce9 012/301: Merge from lewang/master and update comments, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 02946e07b6 013/301: Update contributors and spell check, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit af6d0ef70b 007/301: host on github, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 17e8fca7e6 011/301: Merge from tsdh/master, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 6d96992291 015/301: Remove duplicated comments, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 011e8d354c 016/301: Performance optimization of iedit-occurrence-update,
ELPA Syncer <=
- [nongnu] elpa/iedit c8dac6bee8 020/301: exit iedit mode when change is not inside of occurrence., ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 768d89b60c 022/301: Merge remote-tracking branch 'lewang/master', ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 0edc86ff41 024/301: Fix the last occurrence problem when it is a complete symbol., ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit dd7d2f95f8 027/301: fix org-mode text-property compatibility (use insert-and-inherit), ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit d5d4027a33 030/301: fix `iedit-toggle-unmatched-lines-visible' for rectangles, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 652087d63c 036/301: fix warning: the function `make-sparse-key-map' is not known to be, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit da47784c8d 038/301: Add iedit mode easy access keys, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit c53a885fe5 040/301: Add bufferring modification functionalities, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 9bc57d2a30 041/301: make iedit-skipped-modification-once buffer local, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit e99e65fccb 044/301: Fix current point move problem when call iedit-replace-occurrences., ELPA Syncer, 2022/01/10