Skip to content

Commit e02350d

Browse files
committed
Fixes microsoft#131277: Reveal entire diff range in center
1 parent a12e9cd commit e02350d

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

src/vs/editor/browser/widget/diffNavigator.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -132,24 +132,25 @@ export class DiffNavigator extends Disposable implements IDiffNavigator {
132132
});
133133

134134
} else {
135-
this.ranges.push({
136-
rhs: true,
137-
range: new Range(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedStartLineNumber, 1)
138-
});
135+
if (lineChange.modifiedEndLineNumber === 0) {
136+
// a deletion
137+
this.ranges.push({
138+
rhs: true,
139+
range: new Range(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedStartLineNumber + 1, 1)
140+
});
141+
} else {
142+
// an insertion or modification
143+
this.ranges.push({
144+
rhs: true,
145+
range: new Range(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber + 1, 1)
146+
});
147+
}
139148
}
140149
});
141150
}
142151

143152
// sort
144-
this.ranges.sort((left, right) => {
145-
if (left.range.getStartPosition().isBeforeOrEqual(right.range.getStartPosition())) {
146-
return -1;
147-
} else if (right.range.getStartPosition().isBeforeOrEqual(left.range.getStartPosition())) {
148-
return 1;
149-
} else {
150-
return 0;
151-
}
152-
});
153+
this.ranges.sort((left, right) => Range.compareRangesUsingStarts(left.range, right.range));
153154
this._onDidUpdate.fire(this);
154155
}
155156

@@ -203,7 +204,7 @@ export class DiffNavigator extends Disposable implements IDiffNavigator {
203204
try {
204205
let pos = info.range.getStartPosition();
205206
this._editor.setPosition(pos);
206-
this._editor.revealPositionInCenter(pos, scrollType);
207+
this._editor.revealRangeInCenter(info.range, scrollType);
207208
} finally {
208209
this.ignoreSelectionChange = false;
209210
}

0 commit comments

Comments
 (0)