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

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

[nongnu] elpa/iedit 5fdf89edc9 238/301: Fix switch to mc mode problem


From: ELPA Syncer
Subject: [nongnu] elpa/iedit 5fdf89edc9 238/301: Fix switch to mc mode problem
Date: Mon, 10 Jan 2022 22:59:05 -0500 (EST)

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

    Fix switch to mc mode problem
    
    `post-command-hook' run the the command itself, which set up the hook. So 
the
     hook function must have a way to avoid this.
---
 iedit-lib.el | 47 +++++++++++++++++++++++++++--------------------
 1 file changed, 27 insertions(+), 20 deletions(-)

diff --git a/iedit-lib.el b/iedit-lib.el
index 4897ce4816..5efd812654 100644
--- a/iedit-lib.el
+++ b/iedit-lib.el
@@ -3,7 +3,7 @@
 
 ;; Copyright (C) 2010, 2011, 2012 Victor Ren
 
-;; Time-stamp: <2017-09-09 19:22:51 Victor Ren>
+;; Time-stamp: <2017-09-14 23:10:36 Victor Ren>
 ;; Author: Victor Ren <victorhge@gmail.com>
 ;; Keywords: occurrence region simultaneous rectangle refactoring
 ;; Version: 0.9.9
@@ -185,6 +185,32 @@ is not applied to other occurrences when it is true.")
     map)
   "Default keymap used within occurrence overlays.")
 
+(when (require 'multiple-cursors-core nil t)
+  (defun iedit-switch-to-mc-mode ()
+    "Switch to multiple-cursors-mode.  So that you can navigate
+out of the occurrence and edit simutaneously with multiple
+cursors."
+    (interactive "*")
+    (iedit-barf-if-buffering)
+    (let* ((ov (iedit-find-current-occurrence-overlay))
+           (offset (- (point) (overlay-start ov)))
+           (master (point)))
+      (mc/save-excursion
+       (dolist (occurrence iedit-occurrences-overlays)
+         (goto-char (+ (overlay-start occurrence) offset))
+         (unless (= master (point))
+           (mc/create-fake-cursor-at-point))
+         ))
+      (run-hooks 'iedit-aborting-hook)
+      (multiple-cursors-mode 1)
+      ))
+  ;; `multiple-cursors-mode' runs `post-command-hook' function for all the
+  ;; currors. `post-command-hook' is setup in `iedit-switch-to-mc-mode' So the
+  ;; function is excuted after `iedit-switch-to-mc-mode'. It is not expected.
+  ;; `mc/cmds-to-runn-once' is for skipping this.
+  (add-to-list 'mc/cmds-to-run-once 'iedit-switch-to-mc-mode)
+  (define-key iedit-occurrence-keymap-default (kbd "M-M") 
'iedit-switch-to-mc-mode))
+
 (defvar iedit-occurrence-keymap 'iedit-occurrence-keymap-default
   "Keymap used within occurrence overlays.
 It should be set before occurrence overlay is created.")
@@ -598,26 +624,7 @@ value of `iedit-occurrence-context-lines' is used for this 
time."
   (iedit-barf-if-buffering)
   (iedit-apply-on-occurrences 'upcase-region))
 
-(when (require 'multiple-cursors-core nil t)
-  (defun iedit-switch-to-mc-mode ()
-    "Switch to multiple-cursors-mode.  So that you can navigate
-out of the occurrence and edit simutaneously with multiple
-cursors."
-    (interactive "*")
-    (iedit-barf-if-buffering)
-    (let* ((ov (iedit-find-current-occurrence-overlay))
-           (offset (- (point) (overlay-start ov)))
-           (master (point)))
-      (mc/save-excursion
-       (dolist (occurrence iedit-occurrences-overlays)
-         (goto-char (+ (overlay-start occurrence) offset))
-         (unless (= master (point))
-           (mc/create-fake-cursor-at-point))
-         ))
-      (multiple-cursors-mode 1)
-      (run-hooks 'iedit-aborting-hook)))
 
-  (define-key iedit-occurrence-keymap-default (kbd "M-M") 
'iedit-switch-to-mc-mode))
 
 (defun iedit-downcase-occurrences()
   "Covert occurrences to lower case."



reply via email to

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