[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/iedit 62d2a5ac45 077/301: Fix iedit-kill-rectangle problem
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/iedit 62d2a5ac45 077/301: Fix iedit-kill-rectangle problem |
Date: |
Mon, 10 Jan 2022 22:58:52 -0500 (EST) |
branch: elpa/iedit
commit 62d2a5ac45c5f3999a1740ebc660ed4e9b9dcc87
Author: Victor Ren <victorhge@gmail.com>
Commit: Victor Ren <victorhge@gmail.com>
Fix iedit-kill-rectangle problem
---
iedit-tests.el | 23 +++++++++++++++++++++--
iedit.el | 41 +++++++++++++++++++++++++++++++----------
2 files changed, 52 insertions(+), 12 deletions(-)
diff --git a/iedit-tests.el b/iedit-tests.el
index 187cb8dd0e..96838d0791 100755
--- a/iedit-tests.el
+++ b/iedit-tests.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2010, 2011, 2012 Victor Ren
-;; Time-stamp: <2012-03-03 17:27:58 Victor Ren>
+;; Time-stamp: <2012-03-04 11:35:50 Victor Ren>
;; Author: Victor Ren <victorhge@gmail.com>
;; Version: 0.94
;; X-URL: http://www.emacswiki.org/emacs/Iedit
@@ -344,6 +344,24 @@ foo"
(iedit-rectangle-mode)
(should (equal iedit-rectangle '(1 19))))))
+(ert-deftest iedit-kill-rectangle-error-test ()
+ (with-iedit-test-fixture
+"foo
+ foo
+ barfoo
+ foo"
+ (lambda ()
+ (iedit-mode)
+ (set-mark-command nil)
+ (goto-char 22)
+ (iedit-rectangle-mode)
+ (should (iedit-same-column))
+ (should (equal iedit-rectangle '(1 22)))
+ (iedit-prev-occurrence)
+ (delete-char -1)
+ (should (not (iedit-same-column)))
+ (should-error (iedit-kill-rectangle)))))
+
(ert-deftest iedit-kill-rectangle-test ()
(with-iedit-test-fixture
"foo
@@ -354,7 +372,8 @@ foo"
(iedit-mode)
(set-mark-command nil)
(goto-char 22)
- (iedit-rectangle-mode )
+ (iedit-rectangle-mode)
+ (should (iedit-same-column))
(should (equal iedit-rectangle '(1 22)))
(iedit-kill-rectangle)
(should (string= (buffer-string)
diff --git a/iedit.el b/iedit.el
index 17d1a8528d..035c2a2957 100644
--- a/iedit.el
+++ b/iedit.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2010, 2011, 2012 Victor Ren
-;; Time-stamp: <2012-03-03 17:27:33 Victor Ren>
+;; Time-stamp: <2012-03-04 11:39:18 Victor Ren>
;; Author: Victor Ren <victorhge@gmail.com>
;; Keywords: occurrence region replace simultaneous
;; Version: 0.95
@@ -52,12 +52,13 @@
;; when in Iedit mode - it toggles hiding non-matching lines.
;; Renaming refactoring is convenient in iedit mode
-;; - The symbol under point is selected as occurrence by default and only
complete
-;; symbols are matched
+;;
+;; - The symbol under point is selected as occurrence by default and only
+;; complete symbols are matched
;; - With digit prefix argument 0, only symbols in current function are matched
;; - Restricting symbols in current region can be done by pressing C-; again
;; - Last renaming refactoring is remembered and can be applied to other
buffers
-;; later
+;; - later
;; There are also some other facilities you may never think about. Refer to
the
;; document of function `iedit-mode' (C-h f iedit-mode RET) for more details.
@@ -858,8 +859,9 @@ This function preserves case."
(interactive "*sReplace with: ")
(let* ((ov (iedit-find-current-occurrence-overlay))
(offset (- (point) (overlay-start ov)))
- (from-string (downcase (buffer-substring-no-properties (overlay-start
ov)
- (overlay-end
ov)))))
+ (from-string (downcase (buffer-substring-no-properties
+ (overlay-start ov)
+ (overlay-end ov)))))
(iedit-apply-on-occurrences
(lambda (beg end from-string to-string)
(goto-char beg)
@@ -991,10 +993,13 @@ with a prefix argument, prompt for START-AT and FORMAT."
"Kill the rectangle.
The behavior is the same as `kill-rectangle' in rect mode."
(interactive "*P")
- (let ((inhibit-modification-hooks t))
- (kill-rectangle (car iedit-rectangle)
- (cadr iedit-rectangle)
- fill)))
+ (or (iedit-same-column)
+ (error "Not a rectangle"))
+ (let ((inhibit-modification-hooks t)
+ (beg (overlay-start (car iedit-occurrences-overlays)))
+ (end (overlay-end (progn (iedit-last-occurrence)
+ (iedit-find-current-occurrence-overlay)))))
+ (kill-rectangle beg end fill)))
(defun iedit-restrict-function(&optional arg)
"Restricting iedit mode in current function."
@@ -1021,6 +1026,22 @@ This function is supposed to be called in overlay
keymap."
(setq overlays (cdr overlays)))))
found))
+(defun iedit-same-column ()
+ "Return t if all occurrences are at the same column."
+ (save-excursion
+ (let ((column (progn (goto-char (overlay-start (car
iedit-occurrences-overlays)))
+ (current-column)))
+ (overlays (cdr iedit-occurrences-overlays))
+ (same t))
+ (while (and overlays same)
+ (let ((overlay (car overlays)))
+ (if (/= (progn (goto-char (overlay-start overlay))
+ (current-column))
+ column)
+ (setq same nil)
+ (setq overlays (cdr overlays)))))
+ same)))
+
;; This function might be called out of any occurrence
(defun iedit-current-occurrence-string ()
"Return current occurrence string.
- [nongnu] elpa/iedit e08ad5923a 043/301: Make Iedit mode available for read only buffer, (continued)
- [nongnu] elpa/iedit e08ad5923a 043/301: Make Iedit mode available for read only buffer, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 78f606d4fc 045/301: Add iedit-number-occurrences function, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 0d4027fe10 046/301: Move save-excursion out of dolist, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 3bca7e2da5 048/301: Fix iedit toggle case-sensitive problem when getting occurrence from history, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 5ab980908c 050/301: Update documents, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 799a0d17d1 053/301: Bump to version 0.94, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 00abe88e13 061/301: Hide line-feed between occurrence, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit bd8c116489 062/301: Add new occurrence function iedit-restrict-defun, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 7ebea0f43b 070/301: Add tests for iedit-rectangle, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit e5f083f977 072/301: Add testcase for iedit-restrict-defun, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 62d2a5ac45 077/301: Fix iedit-kill-rectangle problem,
ELPA Syncer <=
- [nongnu] elpa/iedit 8559638b9b 076/301: Fix C-u C-u iedit-last-inital-string-global problem, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 3ead6c6d3b 074/301: run checkdoc, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit ac2faa29d0 075/301: Add iedit-mode-defun and global key binding, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 09c5063668 088/301: Merge pull request #10 from lewang/master, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 5ad28b5ea0 003/301: updates, ELPA Syncer, 2022/01/10
- [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