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

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

[nongnu] elpa/multiple-cursors 1686630 369/434: try to implement blackli


From: ELPA Syncer
Subject: [nongnu] elpa/multiple-cursors 1686630 369/434: try to implement blacklist
Date: Sat, 7 Aug 2021 09:21:01 -0400 (EDT)

branch: elpa/multiple-cursors
commit 1686630fd69279023bb2768f8174347ccaa91c8d
Author: bb2020 <bb2020@users.noreply.github.com>
Commit: bb2020 <bb2020@users.noreply.github.com>

    try to implement blacklist
---
 multiple-cursors-core.el | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/multiple-cursors-core.el b/multiple-cursors-core.el
index 09b1b01..dd733f2 100644
--- a/multiple-cursors-core.el
+++ b/multiple-cursors-core.el
@@ -310,6 +310,19 @@ cursor with updated info."
     (mc/pop-state-from-overlay mc--stored-state-for-undo)
     (setq mc--stored-state-for-undo nil)))
 
+(defcustom mc/black-list-prefer nil
+  "Disables whitelist mechanism and executes commands that are defined
+in mc/black-list only once. If you are a novice multiple-cursors or
+Emacs user, it is benefitical to stick to whitelists."
+  :type '(boolean)
+  :group 'multiple-cursors)
+
+(defcustom mc/black-list nil
+  "Commands to execute once while using multiple-cursors. Requires
+mc/black-list-prefer to be non-nil."
+  :type '(repeat function)
+  :group 'multiple-cursors)
+
 (defun mc/prompt-for-inclusion-in-whitelist (original-command)
   "Asks the user, then adds the command either to the once-list or the 
all-list."
   (let ((all-p (y-or-n-p (format "Do %S for all cursors?" original-command))))
@@ -396,13 +409,19 @@ the original cursor, to inform about the lack of support."
                   (message "%S is not supported with multiple cursors%s"
                            original-command
                            (get original-command 'mc--unsupported))
-                (when (and original-command
-                           (not (memq original-command 
mc--default-cmds-to-run-once))
-                           (not (memq original-command mc/cmds-to-run-once))
-                           (or (memq original-command 
mc--default-cmds-to-run-for-all)
-                               (memq original-command mc/cmds-to-run-for-all)
-                               (mc/prompt-for-inclusion-in-whitelist 
original-command)))
-                  (mc/execute-command-for-all-fake-cursors 
original-command))))))))))
+                (if mc/black-list-prefer
+                    (when (and original-command
+                               (not (memq original-command 
mc--default-cmds-to-run-once))
+                               (or (memq original-command 
mc--default-cmds-to-run-for-all)
+                                   (not (memq original-command 
mc/black-list))))
+                      (mc/execute-command-for-all-fake-cursors 
original-command))
+                  (when (and original-command
+                             (not (memq original-command 
mc--default-cmds-to-run-once))
+                             (not (memq original-command mc/cmds-to-run-once))
+                             (or (memq original-command 
mc--default-cmds-to-run-for-all)
+                                 (memq original-command mc/cmds-to-run-for-all)
+                                 (mc/prompt-for-inclusion-in-whitelist 
original-command)))
+                    (mc/execute-command-for-all-fake-cursors 
original-command)))))))))))
 
 (defun mc/remove-fake-cursors ()
   "Remove all fake cursors.



reply via email to

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