From 1e4e6aaa2eb7e32551a8d9fae04df15600ef2f93 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 27 Sep 2021 16:17:25 +0200 Subject: [PATCH] Fixes #132156: Do not move cursor to the first non whitespace column when using `revealCursor` --- .../editor/common/controller/cursorMoveCommands.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/vs/editor/common/controller/cursorMoveCommands.ts b/src/vs/editor/common/controller/cursorMoveCommands.ts index a07173f2eed..6dee5be5e5b 100644 --- a/src/vs/editor/common/controller/cursorMoveCommands.ts +++ b/src/vs/editor/common/controller/cursorMoveCommands.ts @@ -381,14 +381,16 @@ export class CursorMoveCommands { return new CursorState(cursor.modelState, cursor.viewState); } else { + let newViewLineNumber: number; if (viewLineNumber > visibleViewRange.endLineNumber - 1) { - viewLineNumber = visibleViewRange.endLineNumber - 1; + newViewLineNumber = visibleViewRange.endLineNumber - 1; + } else if (viewLineNumber < visibleViewRange.startLineNumber) { + newViewLineNumber = visibleViewRange.startLineNumber; + } else { + newViewLineNumber = viewLineNumber; } - if (viewLineNumber < visibleViewRange.startLineNumber) { - viewLineNumber = visibleViewRange.startLineNumber; - } - const viewColumn = viewModel.getLineFirstNonWhitespaceColumn(viewLineNumber); - return this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn); + const position = MoveOperations.vertical(viewModel.cursorConfig, viewModel, viewLineNumber, cursor.viewState.position.column, cursor.viewState.leftoverVisibleColumns, newViewLineNumber, false); + return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, position.lineNumber, position.column, position.leftoverVisibleColumns)); } }