1234567891011121314151617181920212223 |
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- import { Range } from '../core/range.js';
- import { Selection } from '../core/selection.js';
- export class SurroundSelectionCommand {
- constructor(range, charBeforeSelection, charAfterSelection) {
- this._range = range;
- this._charBeforeSelection = charBeforeSelection;
- this._charAfterSelection = charAfterSelection;
- }
- getEditOperations(model, builder) {
- builder.addTrackedEditOperation(new Range(this._range.startLineNumber, this._range.startColumn, this._range.startLineNumber, this._range.startColumn), this._charBeforeSelection);
- builder.addTrackedEditOperation(new Range(this._range.endLineNumber, this._range.endColumn, this._range.endLineNumber, this._range.endColumn), this._charAfterSelection);
- }
- computeCursorState(model, helper) {
- let inverseEditOperations = helper.getInverseEditOperations();
- let firstOperationRange = inverseEditOperations[0].range;
- let secondOperationRange = inverseEditOperations[1].range;
- return new Selection(firstOperationRange.endLineNumber, firstOperationRange.endColumn, secondOperationRange.endLineNumber, secondOperationRange.endColumn - this._charAfterSelection.length);
- }
- }
|