Skip to content

Commit 087921e

Browse files
authored
Revert "Skip folded regions when computing relative line numbers (microsoft#155970)" (microsoft#159236)
This reverts commit 187ec06.
1 parent fe743bb commit 087921e

File tree

1 file changed

+9
-56
lines changed

1 file changed

+9
-56
lines changed

src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.ts

Lines changed: 9 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ export class LineNumbersOverlay extends DynamicViewOverlay {
2727
private _lineNumbersLeft!: number;
2828
private _lineNumbersWidth!: number;
2929
private _lastCursorModelPosition: Position;
30-
private _lastCursorViewPosition: Position;
3130
private _renderResult: string[] | null;
3231
private _activeLineNumber: number;
3332

@@ -38,7 +37,6 @@ export class LineNumbersOverlay extends DynamicViewOverlay {
3837
this._readConfig();
3938

4039
this._lastCursorModelPosition = new Position(1, 1);
41-
this._lastCursorViewPosition = new Position(1, 1);
4240
this._renderResult = null;
4341
this._activeLineNumber = 1;
4442
this._context.addEventHandler(this);
@@ -70,7 +68,6 @@ export class LineNumbersOverlay extends DynamicViewOverlay {
7068
}
7169
public override onCursorStateChanged(e: viewEvents.ViewCursorStateChangedEvent): boolean {
7270
const primaryViewPosition = e.selections[0].getPosition();
73-
this._lastCursorViewPosition = primaryViewPosition;
7471
this._lastCursorModelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(primaryViewPosition);
7572

7673
let shouldRender = false;
@@ -115,6 +112,14 @@ export class LineNumbersOverlay extends DynamicViewOverlay {
115112
return this._renderCustomLineNumbers(modelLineNumber);
116113
}
117114

115+
if (this._renderLineNumbers === RenderLineNumbersType.Relative) {
116+
const diff = Math.abs(this._lastCursorModelPosition.lineNumber - modelLineNumber);
117+
if (diff === 0) {
118+
return '<span class="relative-current-line-number">' + modelLineNumber + '</span>';
119+
}
120+
return String(diff);
121+
}
122+
118123
if (this._renderLineNumbers === RenderLineNumbersType.Interval) {
119124
if (this._lastCursorModelPosition.lineNumber === modelLineNumber) {
120125
return String(modelLineNumber);
@@ -139,45 +144,6 @@ export class LineNumbersOverlay extends DynamicViewOverlay {
139144
const visibleEndLineNumber = ctx.visibleRange.endLineNumber;
140145
const common = '<div class="' + LineNumbersOverlay.CLASS_NAME + lineHeightClassName + '" style="left:' + this._lineNumbersLeft + 'px;width:' + this._lineNumbersWidth + 'px;">';
141146

142-
let relativeLineNumbers: number[] | null = null;
143-
if (this._renderLineNumbers === RenderLineNumbersType.Relative) {
144-
relativeLineNumbers = new Array(visibleEndLineNumber - visibleStartLineNumber + 1);
145-
146-
if (this._lastCursorViewPosition.lineNumber >= visibleStartLineNumber && this._lastCursorViewPosition.lineNumber <= visibleEndLineNumber) {
147-
relativeLineNumbers[this._lastCursorViewPosition.lineNumber - visibleStartLineNumber] = this._lastCursorModelPosition.lineNumber;
148-
}
149-
150-
// Iterate up to compute relative line numbers
151-
{
152-
let value = 0;
153-
for (let lineNumber = this._lastCursorViewPosition.lineNumber + 1; lineNumber <= visibleEndLineNumber; lineNumber++) {
154-
const modelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber, 1));
155-
const isWrappedLine = (modelPosition.column !== 1);
156-
if (!isWrappedLine) {
157-
value++;
158-
}
159-
if (lineNumber >= visibleStartLineNumber) {
160-
relativeLineNumbers[lineNumber - visibleStartLineNumber] = isWrappedLine ? 0 : value;
161-
}
162-
}
163-
}
164-
165-
// Iterate down to compute relative line numbers
166-
{
167-
let value = 0;
168-
for (let lineNumber = this._lastCursorViewPosition.lineNumber - 1; lineNumber >= visibleStartLineNumber; lineNumber--) {
169-
const modelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber, 1));
170-
const isWrappedLine = (modelPosition.column !== 1);
171-
if (!isWrappedLine) {
172-
value++;
173-
}
174-
if (lineNumber <= visibleEndLineNumber) {
175-
relativeLineNumbers[lineNumber - visibleStartLineNumber] = isWrappedLine ? 0 : value;
176-
}
177-
}
178-
}
179-
}
180-
181147
const lineCount = this._context.viewModel.getLineCount();
182148
const output: string[] = [];
183149
for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {
@@ -191,20 +157,7 @@ export class LineNumbersOverlay extends DynamicViewOverlay {
191157
}
192158
}
193159

194-
let renderLineNumber: string;
195-
if (relativeLineNumbers) {
196-
const relativeLineNumber = relativeLineNumbers[lineIndex];
197-
if (this._lastCursorViewPosition.lineNumber === lineNumber) {
198-
// current line!
199-
renderLineNumber = `<span class="relative-current-line-number">${relativeLineNumber}</span>`;
200-
} else if (relativeLineNumber) {
201-
renderLineNumber = String(relativeLineNumber);
202-
} else {
203-
renderLineNumber = '';
204-
}
205-
} else {
206-
renderLineNumber = this._getLineRenderLineNumber(lineNumber);
207-
}
160+
const renderLineNumber = this._getLineRenderLineNumber(lineNumber);
208161

209162
if (renderLineNumber) {
210163
if (lineNumber === this._activeLineNumber) {

0 commit comments

Comments
 (0)