[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/evil-exchange 0539868f46 17/46: Drop use of `transpose-reg
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/evil-exchange 0539868f46 17/46: Drop use of `transpose-regions` |
Date: |
Thu, 6 Jan 2022 03:59:51 -0500 (EST) |
branch: elpa/evil-exchange
commit 0539868f46450593daec15ff791b9dfb40849231
Author: Fredrik Bergroth <fbergroth@gmail.com>
Commit: Fredrik Bergroth <fbergroth@gmail.com>
Drop use of `transpose-regions`
Exchanging regular regions now uses the same logic as block regions.
---
evil-exchange.el | 29 +++++++++++++++++------------
1 file changed, 17 insertions(+), 12 deletions(-)
diff --git a/evil-exchange.el b/evil-exchange.el
index 843dbb611b..4f334a6a9e 100644
--- a/evil-exchange.el
+++ b/evil-exchange.el
@@ -104,27 +104,32 @@
(cond
;; exchange block region
((and (eq orig-type 'block) (eq type 'block))
- (let ((orig-rect (delete-extract-rectangle orig-beg orig-end))
- (curr-rect (delete-extract-rectangle beg-marker end-marker)))
- (save-excursion
- (goto-char orig-beg)
- (insert-rectangle curr-rect)
- (goto-char beg-marker)
- (insert-rectangle orig-rect)))
- (setq evil-exchange-position nil)
- (evil-exchange-remove-overlays))
+ (evil-exchange--do-swap beg-marker end-marker
+ orig-beg orig-end
+ #'delete-extract-rectangle
#'insert-rectangle))
;; signal error if regions incompatible
((or (eq orig-type 'block) (eq type 'block))
(error "Can't exchange block region with non-block region."))
;; exchange normal region
(t
- (transpose-regions orig-beg orig-end beg end)
- (setq evil-exchange-position nil)
- (evil-exchange-remove-overlays))))))
+ (evil-exchange--do-swap beg-marker end-marker
+ orig-beg orig-end
+ #'delete-and-extract-region #'insert))))))
;; place cursor on beginning of line
(when (and (evil-called-interactively-p) (eq type 'line))
(evil-first-non-blank)))
+(defun evil-exchange--do-swap (curr-beg curr-end orig-beg orig-end extract-fn
insert-fn)
+ (let ((orig-text (funcall extract-fn orig-beg orig-end))
+ (curr-text (funcall extract-fn curr-beg curr-end)))
+ (save-excursion
+ (goto-char orig-beg)
+ (funcall insert-fn curr-text)
+ (goto-char curr-beg)
+ (funcall insert-fn orig-text)))
+ (setq evil-exchange-position nil)
+ (evil-exchange-remove-overlays))
+
;;;###autoload
(defun evil-exchange-cancel ()
"Cancel current pending exchange."
- [nongnu] branch elpa/evil-exchange created (now ac50f21b29), ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 658de11e4c 08/46: Merge pull request #1 from bitdeli-chef/master, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 41206c0e47 06/46: improve doc, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange fe611c6970 15/46: update copyright and bump version, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange e7a403074e 04/46: Make comments conform to emacs' convention, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 0539868f46 17/46: Drop use of `transpose-regions`,
ELPA Syncer <=
- [nongnu] elpa/evil-exchange 524a82a5ac 25/46: document improvement, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 5537594572 26/46: update requirement and copyright, bump version, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 29bd39d942 31/46: bump version, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange cbb670e1ca 28/46: fix wrong boundary, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 8210cdb79b 39/46: Add travis-ci badge, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 6786f0cfaa 40/46: fix obsolete, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 35dd0f0662 43/46: Merge pull request #13 from nnoodle/patch-1, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 3030e21ee1 45/46: Merge pull request #15 from tmurph/master, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 6411ce3e5f 03/46: require fix, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-exchange 31dad20db1 05/46: header fix, ELPA Syncer, 2022/01/06