From 28890833d4bf0e3278218872027bf8278018e2df Mon Sep 17 00:00:00 2001 From: Book-reader Date: Thu, 3 Oct 2024 16:52:14 +1300 Subject: [PATCH] mostly fix cursor and mark position when the cursor is to the left of the mark --- extensions/multiple-cursors/multiple-cursors.lisp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/extensions/multiple-cursors/multiple-cursors.lisp b/extensions/multiple-cursors/multiple-cursors.lisp index bedabe72c..2f1221b38 100644 --- a/extensions/multiple-cursors/multiple-cursors.lisp +++ b/extensions/multiple-cursors/multiple-cursors.lisp @@ -32,14 +32,14 @@ (define-command mark-next-like-this () () "" (if (buffer-mark-p (current-buffer)) - (mark-like-this-direction (region-beginning (current-buffer)) (region-end (current-buffer)) + (mark-like-this-direction (buffer-mark (current-buffer)) (buffer-point (current-buffer)) #'search-forward) (add-cursors-to-next-line))) (define-command mark-previous-like-this () () "" (if (buffer-mark-p (current-buffer)) - (mark-like-this-direction (region-beginning (current-buffer)) (region-end (current-buffer)) + (mark-like-this-direction (buffer-mark (current-buffer)) (buffer-point (current-buffer)) #'search-backward) (add-cursors-to-previous-line))) @@ -72,6 +72,7 @@ (with-point ((point point)) (if (search-next-matched point 1) (progn + (setf (point-charpos point) (point-charpos end)) (setf cursor (make-fake-cursor point)) (dotimes (_ (- (point-linum end) (point-linum start))) (if (equal direction #'search-forward)