Skip to content

Commit 0041358

Browse files
committed
1 parent 332c4d9 commit 0041358

4 files changed

Lines changed: 11 additions & 19 deletions

File tree

src/vs/editor/browser/controller/coreCommands.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -343,12 +343,8 @@ export namespace CoreNavigationCommands {
343343
const validatedPosition = context.model.validatePosition(args.position);
344344
const validatedViewPosition = context.validateViewPosition(new Position(args.viewPosition.lineNumber, args.viewPosition.column), validatedPosition);
345345

346-
let fromViewLineNumber = prevColumnSelectData.fromViewLineNumber;
347-
let fromViewVisualColumn = prevColumnSelectData.fromViewVisualColumn;
348-
if (!prevColumnSelectData.isReal && args.setAnchorIfNotSet) {
349-
fromViewLineNumber = validatedViewPosition.lineNumber;
350-
fromViewVisualColumn = args.mouseColumn - 1;
351-
}
346+
let fromViewLineNumber = args.doColumnSelect ? prevColumnSelectData.fromViewLineNumber : validatedViewPosition.lineNumber;
347+
let fromViewVisualColumn = args.doColumnSelect ? prevColumnSelectData.fromViewVisualColumn : args.mouseColumn - 1;
352348
return ColumnSelection.columnSelect(context.config, context.viewModel, fromViewLineNumber, fromViewVisualColumn, validatedViewPosition.lineNumber, args.mouseColumn - 1);
353349
}
354350
});

src/vs/editor/browser/view/viewController.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,7 @@ export class ViewController {
133133

134134
public dispatchMouse(data: IMouseDispatchData): void {
135135
if (data.middleButton) {
136-
if (data.inSelectionMode) {
137-
this._columnSelect(data.position, data.mouseColumn, true);
138-
} else {
139-
this.moveTo(data.position);
140-
}
136+
this._columnSelect(data.position, data.mouseColumn, data.inSelectionMode);
141137
} else if (data.startedOnLineNumbers) {
142138
// If the dragging started on the gutter, then have operations work on the entire line
143139
if (this._hasMulticursorModifier(data)) {
@@ -183,7 +179,7 @@ export class ViewController {
183179
if (this._hasMulticursorModifier(data)) {
184180
if (!this._hasNonMulticursorModifier(data)) {
185181
if (data.shiftKey) {
186-
this._columnSelect(data.position, data.mouseColumn, false);
182+
this._columnSelect(data.position, data.mouseColumn, true);
187183
} else {
188184
// Do multi-cursor operations only when purely alt is pressed
189185
if (data.inSelectionMode) {
@@ -223,13 +219,13 @@ export class ViewController {
223219
this._execMouseCommand(CoreNavigationCommands.MoveToSelect, this._usualArgs(viewPosition));
224220
}
225221

226-
private _columnSelect(viewPosition: Position, mouseColumn: number, setAnchorIfNotSet: boolean): void {
222+
private _columnSelect(viewPosition: Position, mouseColumn: number, doColumnSelect: boolean): void {
227223
viewPosition = this._validateViewColumn(viewPosition);
228224
this._execMouseCommand(CoreNavigationCommands.ColumnSelect, {
229225
position: this._convertViewToModelPosition(viewPosition),
230226
viewPosition: viewPosition,
231227
mouseColumn: mouseColumn,
232-
setAnchorIfNotSet: setAnchorIfNotSet
228+
doColumnSelect: doColumnSelect
233229
});
234230
}
235231

src/vs/editor/common/controller/cursor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ export class Cursor extends viewEvents.ViewEventEmitter implements ICursors {
400400
return this._columnSelectData;
401401
}
402402
const primaryCursor = this._cursors.getPrimaryCursor();
403-
const primaryPos = primaryCursor.viewState.position;
403+
const primaryPos = primaryCursor.viewState.selectionStart.getStartPosition();
404404
const viewLineNumber = primaryPos.lineNumber;
405405
const viewVisualColumn = CursorColumns.visibleColumnFromColumn2(this.context.config, this.context.viewModel, primaryPos);
406406
return {

src/vs/editor/test/browser/controller/cursor.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,7 @@ suite('Editor Controller - Cursor', () => {
711711
position: new Position(4, 4),
712712
viewPosition: new Position(4, 4),
713713
mouseColumn: 15,
714-
setAnchorIfNotSet: false
714+
doColumnSelect: true
715715
});
716716

717717
let expectedSelections = [
@@ -747,7 +747,7 @@ suite('Editor Controller - Cursor', () => {
747747
position: new Position(4, 1),
748748
viewPosition: new Position(4, 1),
749749
mouseColumn: 1,
750-
setAnchorIfNotSet: false
750+
doColumnSelect: true
751751
});
752752

753753
assertCursor(cursor, [
@@ -787,7 +787,7 @@ suite('Editor Controller - Cursor', () => {
787787
position: new Position(1, 1),
788788
viewPosition: new Position(1, 1),
789789
mouseColumn: 1,
790-
setAnchorIfNotSet: false
790+
doColumnSelect: true
791791
});
792792
assertCursor(cursor, [
793793
new Selection(10, 10, 10, 1),
@@ -806,7 +806,7 @@ suite('Editor Controller - Cursor', () => {
806806
position: new Position(1, 1),
807807
viewPosition: new Position(1, 1),
808808
mouseColumn: 1,
809-
setAnchorIfNotSet: false
809+
doColumnSelect: true
810810
});
811811
assertCursor(cursor, [
812812
new Selection(10, 10, 10, 1),

0 commit comments

Comments
 (0)