branch: elpa/multiple-cursors
commit 5cd6ddf788640cc073d8a32aef06a525b92d0cbd
Merge: 3cfae1d 38e590c
Author: Magnar Sveen <[email protected]>
Commit: Magnar Sveen <[email protected]>
Merge pull request #125 from kyanagi/fix-cycle-cursors-on-edge
Fix cycle-cursor behavior
---
features/multiple-cursors-core.feature | 14 ++++++++++++++
mc-cycle-cursors.el | 4 ++--
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/features/multiple-cursors-core.feature
b/features/multiple-cursors-core.feature
index cd308cd..0a6e8b9 100644
--- a/features/multiple-cursors-core.feature
+++ b/features/multiple-cursors-core.feature
@@ -166,9 +166,23 @@ Feature: Multiple cursors core
And I press "C-v"
Then the cursor should be at point "8"
+ Scenario: Looping forwards around cursors including one at point-max
+ Given I have cursors at "_" in "1_34_67_"
+ And I press "C-f"
+ And I press "C-v"
+ And I press "C-v"
+ And I press "C-v"
+ Then the cursor should be at point "3"
+
Scenario: Looping backwards around cursors
Given I have cursors at "_" in "1_34567_9"
And I press "M-v"
And I press "M-v"
Then the cursor should be at point "2"
+ Scenario: Looping backwards around cursors including one at point-min
+ Given I have cursors at "_" in "_234_67_9"
+ And I press "M-v"
+ And I press "M-v"
+ And I press "M-v"
+ Then the cursor should be at point "1"
diff --git a/mc-cycle-cursors.el b/mc-cycle-cursors.el
index 4c93dc7..bb86aaa 100644
--- a/mc-cycle-cursors.el
+++ b/mc-cycle-cursors.el
@@ -32,7 +32,7 @@
(defun mc/next-fake-cursor-after-point ()
(let ((pos (point))
- (next-pos (point-max))
+ (next-pos (1+ (point-max)))
next)
(mc/for-each-fake-cursor
(let ((cursor-pos (overlay-get cursor 'point)))
@@ -44,7 +44,7 @@
(defun mc/prev-fake-cursor-before-point ()
(let ((pos (point))
- (prev-pos (point-min))
+ (prev-pos (1- (point-min)))
prev)
(mc/for-each-fake-cursor
(let ((cursor-pos (overlay-get cursor 'point)))