@@ -132,24 +132,25 @@ export class DiffNavigator extends Disposable implements IDiffNavigator {
132
132
} ) ;
133
133
134
134
} 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
+ }
139
148
}
140
149
} ) ;
141
150
}
142
151
143
152
// 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 ) ) ;
153
154
this . _onDidUpdate . fire ( this ) ;
154
155
}
155
156
@@ -203,7 +204,7 @@ export class DiffNavigator extends Disposable implements IDiffNavigator {
203
204
try {
204
205
let pos = info . range . getStartPosition ( ) ;
205
206
this . _editor . setPosition ( pos ) ;
206
- this . _editor . revealPositionInCenter ( pos , scrollType ) ;
207
+ this . _editor . revealRangeInCenter ( info . range , scrollType ) ;
207
208
} finally {
208
209
this . ignoreSelectionChange = false ;
209
210
}
0 commit comments