Add support for running lambdas for each cursor.

- can't know if it's safe, so we assume it is.
This commit is contained in:
Magnar Sveen 2012-07-18 13:12:56 +02:00
parent 822bf18adf
commit de0519e0f0

View File

@ -132,14 +132,21 @@ is executed normally for point, but skipped for the fake
cursors."
(let ((original-command (or (command-remapping this-original-command)
this-original-command)))
(if (get original-command 'mc--unsupported)
(message "%S is not supported with multiple cursors%s"
original-command
(get original-command 'mc--unsupported))
(if (not (memq original-command mc--cmds))
(when (not (memq original-command mc--cmds-run-once))
(message "Skipping %S" original-command))
(mc/execute-command-for-all-fake-cursors original-command)))))
;; if it's a lambda, we can't know if it's supported or not
;; - so go ahead and assume it's ok, because we're just optimistic like that
(if (not (symbolp original-command))
(mc/execute-command-for-all-fake-cursors original-command)
;; otherwise it's a symbol, and we can be more thorough
(if (get original-command 'mc--unsupported)
(message "%S is not supported with multiple cursors%s"
original-command
(get original-command 'mc--unsupported))
(if (not (memq original-command mc--cmds))
(when (not (memq original-command mc--cmds-run-once))
(message "Skipping %S" original-command))
(mc/execute-command-for-all-fake-cursors original-command))))))
(defun mc/remove-fake-cursors ()
"Remove all fake cursors.