branch: elpa/multiple-cursors
commit 84ef509350f87fe949218f162fecfab2c770896d
Author: Magnar Sveen <[email protected]>
Commit: Magnar Sveen <[email protected]>
Save users own white/black lists in .mc-lists.el
---
multiple-cursors-core.el | 58 +++++++++++++++++++++++++++++-------------------
1 file changed, 35 insertions(+), 23 deletions(-)
diff --git a/multiple-cursors-core.el b/multiple-cursors-core.el
index 8598f5e..f91107f 100644
--- a/multiple-cursors-core.el
+++ b/multiple-cursors-core.el
@@ -177,10 +177,12 @@ cursor with updated info."
(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."
- (if (y-or-n-p (format "Do %S for all cursors?" original-command))
- (add-to-list 'mc/cmds-to-run-for-all original-command)
- (add-to-list 'mc/cmds-to-run-once original-command)
- nil))
+ (let ((all-p (y-or-n-p (format "Do %S for all cursors?" original-command))))
+ (if all-p
+ (add-to-list 'mc/cmds-to-run-for-all original-command)
+ (add-to-list 'mc/cmds-to-run-once original-command))
+ (mc/save-lists)
+ all-p))
(defun mc/num-cursors ()
"The number of cursors (real and fake) in the buffer."
@@ -364,27 +366,37 @@ from being executed if in multiple-cursors-mode."
smart-down)
"Default set of commands that should be mirrored by all cursors")
+(defvar mc/list-file "~/.emacs.d/.mc-lists.el"
+ "The position of the file that keeps track of your preferences
+for running commands with multiple cursors.")
+
+(defun mc/save-lists ()
+ (with-temp-file mc/list-file
+ (emacs-lisp-mode)
+ (insert ";; This file is automatically generated by the multiple-cursors
extension.")
+ (newline)
+ (insert ";; It keeps track of your preferences for running commands with
multiple cursors.")
+ (newline)
+ (newline)
+ (insert "(setq mc/cmds-to-run-for-all '(")
+ (mapc #'(lambda (cmd) (insert (format "%S" cmd)) (newline-and-indent))
mc/cmds-to-run-for-all)
+ (when mc/cmds-to-run-for-all
+ (next-line -1)
+ (end-of-line))
+ (insert "))")
+ (newline)
+ (newline)
+ (insert "(setq mc/cmds-to-run-once '(")
+ (mapc #'(lambda (cmd) (insert (format "%S" cmd)) (newline-and-indent))
mc/cmds-to-run-once)
+ (when mc/cmds-to-run-once
+ (next-line -1)
+ (end-of-line))
+ (insert "))")
+ (newline)))
+
(defvar mc/cmds-to-run-for-all nil
"Commands to run for all cursors in multiple-cursors-mode")
-(setq mc/cmds-to-run-for-all '(save-region-or-current-line
- kill-region-or-backward-word
- change-number-at-point
- dired-back-to-start-of-files
- yank-indented
- wrap-region-trigger
- yas/expand
- org-shiftright
- sgml-slash
- slime-space
- js2-beginning-of-line
- js2-end-of-line
- js2-insert-and-indent
- js2r-inline-var
- c-electric-delete-forward
- c-electric-backspace
- c-electric-paren
- c-electric-semi&comma))
-
+(load mc/list-file t) ;; load, but no errors if it does not exist yet please
(provide 'multiple-cursors-core)