diff --git a/src/vs/editor/common/viewModel/splitLinesCollection.ts b/src/vs/editor/common/viewModel/splitLinesCollection.ts index 2617e7488aecd1a06b0aef69d3116b47e3bb65ba..376e4f280fbce783c4053287586b682460579b52 100644 --- a/src/vs/editor/common/viewModel/splitLinesCollection.ts +++ b/src/vs/editor/common/viewModel/splitLinesCollection.ts @@ -118,12 +118,12 @@ export class CoordinatesConverter implements ICoordinatesConverter { // Model -> View conversion and related methods - public convertModelPositionToViewPosition(modelPosition: Position, affinity?: PositionAffinity): Position { - return this._lines.convertModelPositionToViewPosition(modelPosition.lineNumber, modelPosition.column, affinity); + public convertModelPositionToViewPosition(modelPosition: Position): Position { + return this._lines.convertModelPositionToViewPosition(modelPosition.lineNumber, modelPosition.column); } - public convertModelRangeToViewRange(modelRange: Range, affinity?: PositionAffinity): Range { - return this._lines.convertModelRangeToViewRange(modelRange, affinity); + public convertModelRangeToViewRange(modelRange: Range): Range { + return this._lines.convertModelRangeToViewRange(modelRange); } public modelPositionIsVisible(modelPosition: Position): boolean { @@ -886,12 +886,9 @@ export class SplitLinesCollection implements IViewModelLinesCollection { return r; } - /** - * @param affinity The affinity in case of an empty range. Has no effect for non-empty ranges. - */ - public convertModelRangeToViewRange(modelRange: Range, affinity: PositionAffinity = PositionAffinity.Left): Range { + public convertModelRangeToViewRange(modelRange: Range): Range { if (modelRange.isEmpty()) { - const start = this.convertModelPositionToViewPosition(modelRange.startLineNumber, modelRange.startColumn, affinity); + const start = this.convertModelPositionToViewPosition(modelRange.startLineNumber, modelRange.startColumn, PositionAffinity.Left); return Range.fromPositions(start); } else { const start = this.convertModelPositionToViewPosition(modelRange.startLineNumber, modelRange.startColumn, PositionAffinity.Right); diff --git a/src/vs/editor/common/viewModel/viewModel.ts b/src/vs/editor/common/viewModel/viewModel.ts index bf52f0f45908e9097706190e6ceeb7b5b09f2776..c95364e88daacc829895f61053856208b7e9aa8a 100644 --- a/src/vs/editor/common/viewModel/viewModel.ts +++ b/src/vs/editor/common/viewModel/viewModel.ts @@ -82,11 +82,8 @@ export interface ICoordinatesConverter { validateViewRange(viewRange: Range, expectedModelRange: Range): Range; // Model -> View conversion and related methods - convertModelPositionToViewPosition(modelPosition: Position, affinity?: PositionAffinity): Position; - /** - * @param affinity Only has an effect if the range is empty. - */ - convertModelRangeToViewRange(modelRange: Range, affinity?: PositionAffinity): Range; + convertModelPositionToViewPosition(modelPosition: Position): Position; + convertModelRangeToViewRange(modelRange: Range): Range; modelPositionIsVisible(modelPosition: Position): boolean; getModelLineViewLineCount(modelLineNumber: number): number; } diff --git a/src/vs/editor/common/viewModel/viewModelDecorations.ts b/src/vs/editor/common/viewModel/viewModelDecorations.ts index dd8941d88b559959edb02b74fbeb7bba814170cd..c30da7ecdf431aed5ed644c9f7b786c7528e83b2 100644 --- a/src/vs/editor/common/viewModel/viewModelDecorations.ts +++ b/src/vs/editor/common/viewModel/viewModelDecorations.ts @@ -7,7 +7,7 @@ import { IDisposable } from 'vs/base/common/lifecycle'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import * as editorCommon from 'vs/editor/common/editorCommon'; -import { IModelDecoration, ITextModel, PositionAffinity } from 'vs/editor/common/model'; +import { IModelDecoration, ITextModel } from 'vs/editor/common/model'; import { IViewModelLinesCollection } from 'vs/editor/common/viewModel/splitLinesCollection'; import { ICoordinatesConverter, InlineDecoration, InlineDecorationType, ViewModelDecoration } from 'vs/editor/common/viewModel/viewModel'; import { filterValidationDecorations } from 'vs/editor/common/config/editorOptions'; @@ -81,13 +81,11 @@ export class ViewModelDecorations implements IDisposable { const options = modelDecoration.options; let viewRange: Range; if (options.isWholeLine) { - const start = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.startLineNumber, 1), PositionAffinity.Left); - const end = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.endLineNumber, this.model.getLineMaxColumn(modelRange.endLineNumber)), PositionAffinity.Right); + const start = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.startLineNumber, 1)); + const end = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.endLineNumber, this.model.getLineMaxColumn(modelRange.endLineNumber))); viewRange = new Range(start.lineNumber, start.column, end.lineNumber, end.column); } else { - // For backwards compatibility reasons, we want injected text before any decoration. - // Thus, move decorations to the right. - viewRange = this._coordinatesConverter.convertModelRangeToViewRange(modelRange, PositionAffinity.Right); + viewRange = this._coordinatesConverter.convertModelRangeToViewRange(modelRange); } r = new ViewModelDecoration(viewRange, options); this._decorationsCache[id] = r;