[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/iedit 84c02ea4b6 049/301: Fix toggle case-sensitive proble
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/iedit 84c02ea4b6 049/301: Fix toggle case-sensitive problem when occurrence is empty string. |
Date: |
Mon, 10 Jan 2022 22:58:49 -0500 (EST) |
branch: elpa/iedit
commit 84c02ea4b6f46070ec22bd54b0533dea49f9a1b6
Author: Victor Ren <victorhge@gmail.com>
Commit: Victor Ren <victorhge@gmail.com>
Fix toggle case-sensitive problem when occurrence is empty string.
---
iedit.el | 76 ++++++++++++++++++++++++++++++++++------------------------------
1 file changed, 41 insertions(+), 35 deletions(-)
diff --git a/iedit.el b/iedit.el
index 04c3ceae40..428b87a973 100644
--- a/iedit.el
+++ b/iedit.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2010, 2011, 2012 Victor Ren
-;; Time-stamp: <2012-02-05 22:16:47 Victor Ren>
+;; Time-stamp: <2012-02-05 23:59:16 Victor Ren>
;; Author: Victor Ren <victorhge@gmail.com>
;; Keywords: occurrence region replace simultaneous
;; Version: 0.93
@@ -375,11 +375,18 @@ Commands:
(defun iedit-start (occurrence-exp)
"Start an iedit for the occurrence-exp in the current buffer."
- (setq iedit-occurrences-overlays nil)
(setq iedit-unmatched-lines-invisible
iedit-unmatched-lines-invisible-default)
(setq iedit-aborting nil)
(setq iedit-rectangle nil)
(setq iedit-current-keymap iedit-occurrence-local-map)
+ (iedit-refresh occurrence-exp)
+ (run-hooks 'iedit-mode-hook)
+ ;; (add-hook 'mouse-leave-buffer-hook 'iedit-done)
+ (add-hook 'kbd-macro-termination-hook 'iedit-done))
+
+(defun iedit-refresh (occurrence-exp)
+ "Refresh iedit-mode."
+ (setq iedit-occurrences-overlays nil)
(when iedit-occurrence-is-complete-symbol
(setq occurrence-exp (concat "\\_<" occurrence-exp "\\_>")))
;; Find and record each occurrence's markers and add the overlay to the
occurrences
@@ -392,24 +399,20 @@ Commands:
iedit-occurrences-overlays)
(setq counter (1+ counter)))
(if (= 0 counter)
- (error "0 matches for \"%s\""
- (if (> (length occurrence-exp) 50)
- (concat (substring occurrence-exp 0 50) "...")
- occurrence-exp))
+ (error "0 matches for \"%s\"" (iedit-printable occurrence-exp))
(setq iedit-occurrences-overlays (nreverse iedit-occurrences-overlays))
(if iedit-unmatched-lines-invisible
(iedit-hide-unmatched-lines)))
- (message "%d matches for \"%s\""
- counter
- (if (> (length occurrence-exp) 50)
- (concat (substring occurrence-exp 0 50) "...")
- occurrence-exp))
+ (message "%d matches for \"%s\"" counter (iedit-printable
occurrence-exp))
(setq iedit-mode (propertize (concat " Iedit:" (number-to-string
counter))
'face 'font-lock-warning-face))))
- (force-mode-line-update)
- (run-hooks 'iedit-mode-hook)
- ;; (add-hook 'mouse-leave-buffer-hook 'iedit-done)
- (add-hook 'kbd-macro-termination-hook 'iedit-done))
+ (force-mode-line-update))
+
+(defun iedit-printable (string)
+ "Return a omitted substring that is not longer than 50."
+ (if (> (length string) 50)
+ (concat (substring string 0 50) "...")
+ string))
(defun iedit-rectangle-start (beg end)
"Start an iedit for the region as a rectangle"
@@ -446,14 +449,7 @@ Commands:
"Exit iedit mode."
(if iedit-buffering
(iedit-stop-buffering))
- (let* ((ov (car iedit-occurrences-overlays))
- (beg (overlay-start ov))
- (end (overlay-end ov)))
- (setq iedit-last-occurrence-in-history
- (if (and ov (/= beg end))
- (regexp-quote (buffer-substring-no-properties beg end))
- nil)
- ))
+ (setq iedit-last-occurrence-in-history (iedit-current-occurrence-string))
(remove-overlays (point-min) (point-max) iedit-occurrence-overlay-name t)
(remove-overlays (point-min) (point-max) iedit-invisible-overlay-name t)
(setq iedit-occurrences-overlays nil)
@@ -461,9 +457,9 @@ Commands:
(setq iedit-before-modification-string "")
(setq iedit-before-modification-undo-list nil)
;; (remove-hook 'mouse-leave-buffer-hook 'iedit-done)
- (remove-hook 'kbd-macro-termination-hook 'iedit-done)
(setq iedit-mode nil)
(force-mode-line-update)
+ (remove-hook 'kbd-macro-termination-hook 'iedit-done)
(run-hooks 'iedit-mode-end-hook))
(defun iedit-make-occurrence-overlay (begin end)
@@ -725,9 +721,23 @@ the buffer."
(defun iedit-toggle-case-sensitive ()
"Toggle case-sensitive matching occurrences."
(interactive)
- (iedit-done)
+ (if iedit-buffering
+ (iedit-stop-buffering))
+ (setq iedit-last-occurrence-in-history (iedit-current-occurrence-string))
+ (remove-overlays (point-min) (point-max) iedit-occurrence-overlay-name t)
+ (remove-overlays (point-min) (point-max) iedit-invisible-overlay-name t)
+ (setq iedit-occurrences-overlays nil)
(setq iedit-case-sensitive (not iedit-case-sensitive))
- (iedit-start iedit-last-occurrence-in-history))
+ (if iedit-last-occurrence-in-history
+ (iedit-refresh iedit-last-occurrence-in-history)))
+(defun iedit-current-occurrence-string ()
+ ""
+ (let* ((ov (car iedit-occurrences-overlays))
+ (beg (overlay-start ov))
+ (end (overlay-end ov)))
+ (if (and ov (/= beg end))
+ (regexp-quote (buffer-substring-no-properties beg end))
+ nil)))
(defun iedit-toggle-buffering ()
"Toggle buffering.
@@ -745,15 +755,11 @@ be applied to other occurrences when buffering is off."
(defun iedit-start-buffering ()
"Start buffering."
(setq iedit-buffering t)
- (let* ((ov (iedit-find-current-occurrence-overlay))
- (beg (overlay-start ov))
- (end (overlay-end ov)))
- (setq iedit-before-modification-string
- (buffer-substring-no-properties beg end))
- (setq iedit-before-modification-undo-list buffer-undo-list)
- (setq iedit-mode (propertize " Iedit-B" 'face 'font-lock-warning-face))
- (force-mode-line-update)
- (message "Iedit-mode buffering.")))
+ (setq iedit-before-modification-string (iedit-current-occurrence-string))
+ (setq iedit-before-modification-undo-list buffer-undo-list)
+ (setq iedit-mode (propertize " Iedit-B" 'face 'font-lock-warning-face))
+ (force-mode-line-update)
+ (message "Iedit-mode buffering."))
(defun iedit-stop-buffering ()
"Stop buffering and apply the modification to other occurrences."
- [nongnu] elpa/iedit 6e49225083 042/301: Add iedit-toggle-case-sensitive, (continued)
- [nongnu] elpa/iedit 6e49225083 042/301: Add iedit-toggle-case-sensitive, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit a8cbb6838b 047/301: Add iedit-kill-rectangle to iedit-rect mode and adjust keymap help, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 16ed986c33 066/301: Update document, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit f8c930f073 068/301: Add org markup, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 6300ca95d0 084/301: Update document with "narrowing" information, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 641d062b1b 081/301: Update documents, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit ab4a3857e7 085/301: Adds a .gitignore file to avoid dirty submodules., ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit b9d97fa50e 095/301: Fix iedit-blank-occurrences broken with rectangles problem, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit e35530f45d 097/301: Fix conjointed overlays overlapped problem after modification, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 2bf67ff6c7 100/301: Merge changes in master and, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 84c02ea4b6 049/301: Fix toggle case-sensitive problem when occurrence is empty string.,
ELPA Syncer <=
- [nongnu] elpa/iedit b58ba728ef 059/301: Add global variables and functions to make it possible to reapply last iedit modification, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit f334da3f57 098/301: Split iedit into three files: iedit.el, iedit-lib.el, iedit-rect.el, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit d2684ee774 099/301: Remove duplicate definations, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 67ad83f7fc 192/301: Rewrite iedit-expand-by-a-line, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit d1326bdef1 136/301: release.sh: New file., ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit d6c99fa91a 130/301: set `iedit-rectangle` to the actual rectangle corners, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit f36e6fcf0d 143/301: Move iedit-apply-global-modification to iedit, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 8d58171240 145/301: bugfix for iedit-hide-unmatched-lines, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit a55fcae6d0 175/301: Bind <tab> to iedit-next-occurrence, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 232cd0e5ec 146/301: tweak to use isearch case sensitivity, ELPA Syncer, 2022/01/10