From 3bf8fe1de59ec99530d3c355abb74afddc8ac4b4 Mon Sep 17 00:00:00 2001 From: Valentin Fondaratov Date: Mon, 6 Mar 2023 15:19:08 +0100 Subject: [PATCH] FL-17880 fix relative movements in ImaginaryCaret; track caret movements in file copies GitOrigin-RevId: 4386b367da0aaaabe08433123ef79465999ce472 --- .../intellij/openapi/editor/impl/ImaginaryCaret.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/platform/editor-ui-ex/src/com/intellij/openapi/editor/impl/ImaginaryCaret.java b/platform/editor-ui-ex/src/com/intellij/openapi/editor/impl/ImaginaryCaret.java index db815260f506..6a1e1d32cd75 100644 --- a/platform/editor-ui-ex/src/com/intellij/openapi/editor/impl/ImaginaryCaret.java +++ b/platform/editor-ui-ex/src/com/intellij/openapi/editor/impl/ImaginaryCaret.java @@ -75,9 +75,17 @@ public class ImaginaryCaret extends UserDataHolderBase implements Caret { if (!withSelection) { myStart = myPos = myEnd; } - return; } - throw notImplemented(); + else { + var oldPos = myPos; + var currentPosition = getLogicalPosition(); + moveToLogicalPosition(new LogicalPosition(currentPosition.line + lineShift, currentPosition.column + columnShift)); + if (withSelection) { + var newPos = myPos; + myStart = Math.min(oldPos, newPos); + myEnd = Math.max(oldPos, newPos); + } + } } @Override