Skip to content

Commit 4308e93

Browse files
committedJul 13, 2021
Revert "When a decoration and injected text refer to the same model position, injected text is preferred. This resolves a conflict with gitlens."
This reverts commit 351409e.
1 parent 351409e commit 4308e93

File tree

3 files changed

+12
-20
lines changed

3 files changed

+12
-20
lines changed
 

‎src/vs/editor/common/viewModel/splitLinesCollection.ts

+6-9
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,12 @@ export class CoordinatesConverter implements ICoordinatesConverter {
118118

119119
// Model -> View conversion and related methods
120120

121-
public convertModelPositionToViewPosition(modelPosition: Position, affinity?: PositionAffinity): Position {
122-
return this._lines.convertModelPositionToViewPosition(modelPosition.lineNumber, modelPosition.column, affinity);
121+
public convertModelPositionToViewPosition(modelPosition: Position): Position {
122+
return this._lines.convertModelPositionToViewPosition(modelPosition.lineNumber, modelPosition.column);
123123
}
124124

125-
public convertModelRangeToViewRange(modelRange: Range, affinity?: PositionAffinity): Range {
126-
return this._lines.convertModelRangeToViewRange(modelRange, affinity);
125+
public convertModelRangeToViewRange(modelRange: Range): Range {
126+
return this._lines.convertModelRangeToViewRange(modelRange);
127127
}
128128

129129
public modelPositionIsVisible(modelPosition: Position): boolean {
@@ -886,12 +886,9 @@ export class SplitLinesCollection implements IViewModelLinesCollection {
886886
return r;
887887
}
888888

889-
/**
890-
* @param affinity The affinity in case of an empty range. Has no effect for non-empty ranges.
891-
*/
892-
public convertModelRangeToViewRange(modelRange: Range, affinity: PositionAffinity = PositionAffinity.Left): Range {
889+
public convertModelRangeToViewRange(modelRange: Range): Range {
893890
if (modelRange.isEmpty()) {
894-
const start = this.convertModelPositionToViewPosition(modelRange.startLineNumber, modelRange.startColumn, affinity);
891+
const start = this.convertModelPositionToViewPosition(modelRange.startLineNumber, modelRange.startColumn, PositionAffinity.Left);
895892
return Range.fromPositions(start);
896893
} else {
897894
const start = this.convertModelPositionToViewPosition(modelRange.startLineNumber, modelRange.startColumn, PositionAffinity.Right);

‎src/vs/editor/common/viewModel/viewModel.ts

+2-5
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,8 @@ export interface ICoordinatesConverter {
8282
validateViewRange(viewRange: Range, expectedModelRange: Range): Range;
8383

8484
// Model -> View conversion and related methods
85-
convertModelPositionToViewPosition(modelPosition: Position, affinity?: PositionAffinity): Position;
86-
/**
87-
* @param affinity Only has an effect if the range is empty.
88-
*/
89-
convertModelRangeToViewRange(modelRange: Range, affinity?: PositionAffinity): Range;
85+
convertModelPositionToViewPosition(modelPosition: Position): Position;
86+
convertModelRangeToViewRange(modelRange: Range): Range;
9087
modelPositionIsVisible(modelPosition: Position): boolean;
9188
getModelLineViewLineCount(modelLineNumber: number): number;
9289
}

‎src/vs/editor/common/viewModel/viewModelDecorations.ts

+4-6
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { IDisposable } from 'vs/base/common/lifecycle';
77
import { Position } from 'vs/editor/common/core/position';
88
import { Range } from 'vs/editor/common/core/range';
99
import * as editorCommon from 'vs/editor/common/editorCommon';
10-
import { IModelDecoration, ITextModel, PositionAffinity } from 'vs/editor/common/model';
10+
import { IModelDecoration, ITextModel } from 'vs/editor/common/model';
1111
import { IViewModelLinesCollection } from 'vs/editor/common/viewModel/splitLinesCollection';
1212
import { ICoordinatesConverter, InlineDecoration, InlineDecorationType, ViewModelDecoration } from 'vs/editor/common/viewModel/viewModel';
1313
import { filterValidationDecorations } from 'vs/editor/common/config/editorOptions';
@@ -81,13 +81,11 @@ export class ViewModelDecorations implements IDisposable {
8181
const options = modelDecoration.options;
8282
let viewRange: Range;
8383
if (options.isWholeLine) {
84-
const start = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.startLineNumber, 1), PositionAffinity.Left);
85-
const end = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.endLineNumber, this.model.getLineMaxColumn(modelRange.endLineNumber)), PositionAffinity.Right);
84+
const start = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.startLineNumber, 1));
85+
const end = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.endLineNumber, this.model.getLineMaxColumn(modelRange.endLineNumber)));
8686
viewRange = new Range(start.lineNumber, start.column, end.lineNumber, end.column);
8787
} else {
88-
// For backwards compatibility reasons, we want injected text before any decoration.
89-
// Thus, move decorations to the right.
90-
viewRange = this._coordinatesConverter.convertModelRangeToViewRange(modelRange, PositionAffinity.Right);
88+
viewRange = this._coordinatesConverter.convertModelRangeToViewRange(modelRange);
9189
}
9290
r = new ViewModelDecoration(viewRange, options);
9391
this._decorationsCache[id] = r;

0 commit comments

Comments
 (0)
Please sign in to comment.