diff --git a/features/multiple-cursors-core.feature b/features/multiple-cursors-core.feature new file mode 100644 index 0000000..8c6f2ff --- /dev/null +++ b/features/multiple-cursors-core.feature @@ -0,0 +1,12 @@ +Feature: Multiple cursors core + In order to make efficient changes + As an Emacs user with multiple-cursors + I want to change multiple parts of the buffer at once + + Scenario: Two cursors + Given there is no region selected + When I insert "This text contains the word text twice" + And I select "text" + And I press "C->" + And I press "C-g" + Then I should have 2 cursors diff --git a/features/step-definitions/multiple-cursors-steps.el b/features/step-definitions/multiple-cursors-steps.el index 2836291..486aa32 100644 --- a/features/step-definitions/multiple-cursors-steps.el +++ b/features/step-definitions/multiple-cursors-steps.el @@ -1,3 +1,15 @@ (And "^delete-selection-mode is active$" (lambda () (delete-selection-mode 1))) + +(defun is-extra-cursor-p (o) + (eq (overlay-get o 'type) 'additional-cursor)) + +(defun num-cursors () + (1+ (count-if 'is-extra-cursor-p + (overlays-in (point-min) (point-max))))) + +(Then "^I should have 2 cursors$" + (lambda () + (assert (eq 2 (num-cursors)) nil + "Expected to have 2 cursors, but was %d." (num-cursors))))