提交 ce558b7e 编写于 作者: A Alexandru Dima 提交者: GitHub

Merge pull request #15564 from kaiwood/expand-line-selection

Include newline when expanding line selection
......@@ -714,23 +714,22 @@ export class OneCursorOp {
let viewSel = cursor.viewState.selection;
let viewStartLineNumber = viewSel.startLineNumber;
let viewStartColumn = viewSel.startColumn;
let viewEndLineNumber = viewSel.endLineNumber;
let viewEndColumn = viewSel.endColumn;
let viewEndMaxColumn = cursor.viewModel.getLineMaxColumn(viewEndLineNumber);
if (viewStartColumn !== 1 || viewEndColumn !== viewEndMaxColumn) {
viewStartColumn = 1;
viewEndColumn = viewEndMaxColumn;
} else {
// Expand selection with one more line down
let moveResult = MoveOperations.down(cursor.config, cursor.viewModel, viewEndLineNumber, viewEndColumn, 0, 1, true);
viewEndLineNumber = moveResult.lineNumber;
let moveResult = MoveOperations.down(cursor.config, cursor.viewModel, viewEndLineNumber, viewEndColumn, 0, 1, true);
viewEndLineNumber = moveResult.lineNumber;
// If we reach the last line of the document, select until the end of line too
if (cursor.viewModel.getLineCount() === viewSel.endLineNumber) {
viewEndColumn = cursor.viewModel.getLineMaxColumn(viewEndLineNumber);
} else {
viewEndColumn = 1;
}
cursor.moveViewPosition(false, viewStartLineNumber, viewStartColumn, 0, true);
cursor.moveViewPosition(false, viewStartLineNumber, 1, 0, true);
cursor.moveViewPosition(true, viewEndLineNumber, viewEndColumn, 0, true);
return true;
}
......
......@@ -749,33 +749,33 @@ suite('Editor Controller - Cursor', () => {
// let LINE1 = ' \tMy First Line\t ';
moveTo(thisCursor, 1, 1);
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 1, LINE1.length + 1));
assertCursor(thisCursor, new Selection(1, 1, 2, 1));
moveTo(thisCursor, 1, 2);
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 1, LINE1.length + 1));
assertCursor(thisCursor, new Selection(1, 1, 2, 1));
moveTo(thisCursor, 1, 5);
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 1, LINE1.length + 1));
assertCursor(thisCursor, new Selection(1, 1, 2, 1));
moveTo(thisCursor, 1, 19);
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 1, LINE1.length + 1));
assertCursor(thisCursor, new Selection(1, 1, 2, 1));
moveTo(thisCursor, 1, 20);
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 1, LINE1.length + 1));
assertCursor(thisCursor, new Selection(1, 1, 2, 1));
moveTo(thisCursor, 1, 21);
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 1, LINE1.length + 1));
assertCursor(thisCursor, new Selection(1, 1, 2, 1));
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 2, LINE2.length + 1));
assertCursor(thisCursor, new Selection(1, 1, 3, 1));
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 3, LINE3.length + 1));
assertCursor(thisCursor, new Selection(1, 1, 4, 1));
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 4, LINE4.length + 1));
assertCursor(thisCursor, new Selection(1, 1, 5, 1));
cursorCommand(thisCursor, H.ExpandLineSelection);
assertCursor(thisCursor, new Selection(1, 1, 5, LINE5.length + 1));
cursorCommand(thisCursor, H.ExpandLineSelection);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册