mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-129333 Code folding and "Navigate" actions don't mix well
This commit is contained in:
@@ -525,10 +525,9 @@ public class CaretImpl extends UserDataHolderBase implements Caret {
|
||||
else {
|
||||
logicalPositionToUse = new LogicalPosition(line, column);
|
||||
}
|
||||
setCurrentLogicalCaret(logicalPositionToUse);
|
||||
final int offset = myEditor.logicalPositionToOffset(myLogicalCaret);
|
||||
final int offset = myEditor.logicalPositionToOffset(logicalPositionToUse);
|
||||
if (debugBuffer != null) {
|
||||
debugBuffer.append("Resulting logical position to use: ").append(myLogicalCaret).append(". It's mapped to offset ").append(offset).append("\n");
|
||||
debugBuffer.append("Resulting logical position to use: ").append(logicalPositionToUse).append(". It's mapped to offset ").append(offset).append("\n");
|
||||
}
|
||||
|
||||
FoldRegion collapsedAt = myEditor.getFoldingModel().getCollapsedRegionAtOffset(offset);
|
||||
@@ -554,8 +553,10 @@ public class CaretImpl extends UserDataHolderBase implements Caret {
|
||||
finally {
|
||||
mySkipChangeRequests = false;
|
||||
}
|
||||
logicalPositionToUse = logicalPositionToUse.visualPositionAware ? logicalPositionToUse.withoutVisualPositionInfo() : logicalPositionToUse;
|
||||
}
|
||||
|
||||
setCurrentLogicalCaret(logicalPositionToUse);
|
||||
setLastColumnNumber(myLogicalCaret.column);
|
||||
myDesiredSelectionStartColumn = myDesiredSelectionEndColumn = -1;
|
||||
myVisibleCaret = myEditor.logicalToVisualPosition(myLogicalCaret);
|
||||
|
||||
@@ -111,6 +111,16 @@ public class EditorImplTest extends AbstractEditorTest {
|
||||
|
||||
assertEquals(new VisualPosition(0, 5), myEditor.logicalToVisualPosition(new LogicalPosition(0, 3)));
|
||||
}
|
||||
|
||||
public void testNavigationIntoFoldedRegionWithSoftWrapsEnabled() throws Exception {
|
||||
init("something");
|
||||
addCollapsedFoldRegion(4, 8, "...");
|
||||
EditorTestUtil.configureSoftWraps(myEditor, 1000);
|
||||
|
||||
myEditor.getCaretModel().moveToOffset(5);
|
||||
|
||||
assertEquals(new VisualPosition(0, 5), myEditor.getCaretModel().getVisualPosition());
|
||||
}
|
||||
|
||||
private void init(String text) throws IOException {
|
||||
configureFromFileText(getTestName(false) + ".txt", text);
|
||||
|
||||
Reference in New Issue
Block a user