@@ -830,15 +830,22 @@ export class XtabProvider implements IStatelessNextEditProvider {
830
830
nLinesBelow += this . configService . getExperimentBasedConfig ( ConfigKey . Internal . InlineEditsXtabProviderRetryWithNMoreLinesBelow , this . expService ) ?? 0 ;
831
831
}
832
832
833
- const codeToEditStart = Math . max ( 0 , cursorLine - nLinesAbove ) ;
833
+ let codeToEditStart = Math . max ( 0 , cursorLine - nLinesAbove ) ;
834
834
let codeToEditEndExcl = Math . min ( currentDocLines . length , cursorLine + nLinesBelow + 1 ) ;
835
835
836
836
if ( maxMergeConflictLines ) {
837
837
const tentativeEditWindow = new OffsetRange ( codeToEditStart , codeToEditEndExcl ) ;
838
838
const mergeConflictRange = findMergeConflictMarkersRange ( currentDocLines , tentativeEditWindow , maxMergeConflictLines ) ;
839
839
if ( mergeConflictRange ) {
840
- this . tracer . trace ( `Expanding edit window to include merge conflict markers: ${ mergeConflictRange . toString ( ) } ` ) ;
841
- codeToEditEndExcl = Math . max ( codeToEditEndExcl , mergeConflictRange . endExclusive ) ;
840
+ const onlyMergeConflictLines = this . configService . getExperimentBasedConfig ( ConfigKey . Internal . InlineEditsXtabOnlyMergeConflictLines , this . expService ) ;
841
+ if ( onlyMergeConflictLines ) {
842
+ this . tracer . trace ( `Expanding edit window to include ONLY merge conflict markers: ${ mergeConflictRange . toString ( ) } ` ) ;
843
+ codeToEditStart = mergeConflictRange . start ;
844
+ codeToEditEndExcl = mergeConflictRange . endExclusive ;
845
+ } else {
846
+ this . tracer . trace ( `Expanding edit window to include merge conflict markers: ${ mergeConflictRange . toString ( ) } ; edit window range [${ codeToEditStart } , ${ codeToEditEndExcl } )` ) ;
847
+ codeToEditEndExcl = Math . max ( codeToEditEndExcl , mergeConflictRange . endExclusive ) ;
848
+ }
842
849
}
843
850
}
844
851
0 commit comments