Don't let mc/mark-lines create 'double' cursors.

Previously using mc/mark-lines in a fowards/backwards/forwards
combination would cause multiple cursors to be placed at the same
point of the same line. This is not useful behaviour.

Noted while implementing magnars suggestion: https://github.com/magnars/multiple-cursors.el/pull/23#commitcomment-1983183
This commit is contained in:
Marco Baringer 2012-10-12 17:04:36 +02:00
parent 038c9a7f03
commit 1ec78e195f
2 changed files with 23 additions and 2 deletions

View File

@ -113,3 +113,22 @@ Feature: Marking multiple parts of the buffer
_ccc _ccc
""" """
Scenario: Increasing number of cursors without an active region
When I insert:
"""
aaa
bbb
ccc
"""
And I go to the front of the word "bbb"
And I press "C->"
And I press "C-<"
And i press "C-f"
And I type "_"
Then I should have 3 cursors
And I should see:
"""
a_aa
b_bb
c_cc
"""

View File

@ -145,8 +145,10 @@ With zero ARG, skip the last one and mark next."
(dotimes (i num-lines) (dotimes (i num-lines)
(mc/create-fake-cursor-at-point) (mc/create-fake-cursor-at-point)
(ecase direction (ecase direction
(forwards (next-line 1 nil)) (forwards (loop do (next-line 1 nil)
(backwards (previous-line 1 nil))))) while (mc/all-fake-cursors (point) (1+ (point)))))
(backwards (loop do (previous-line 1 nil)
while (mc/all-fake-cursors (point) (1+ (point))))))))
;;;###autoload ;;;###autoload
(defun mc/mark-next-lines (arg) (defun mc/mark-next-lines (arg)