Skip to content

Commit 776dc6d

Browse files
authored
nes: feat: new setting to include only the merge conflict (#1220)
1 parent 8afa0a3 commit 776dc6d

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/extension/xtab/node/xtabProvider.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -830,15 +830,22 @@ export class XtabProvider implements IStatelessNextEditProvider {
830830
nLinesBelow += this.configService.getExperimentBasedConfig(ConfigKey.Internal.InlineEditsXtabProviderRetryWithNMoreLinesBelow, this.expService) ?? 0;
831831
}
832832

833-
const codeToEditStart = Math.max(0, cursorLine - nLinesAbove);
833+
let codeToEditStart = Math.max(0, cursorLine - nLinesAbove);
834834
let codeToEditEndExcl = Math.min(currentDocLines.length, cursorLine + nLinesBelow + 1);
835835

836836
if (maxMergeConflictLines) {
837837
const tentativeEditWindow = new OffsetRange(codeToEditStart, codeToEditEndExcl);
838838
const mergeConflictRange = findMergeConflictMarkersRange(currentDocLines, tentativeEditWindow, maxMergeConflictLines);
839839
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+
}
842849
}
843850
}
844851

src/platform/configuration/common/configurationService.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,7 @@ export namespace ConfigKey {
698698
export const InlineEditsXtabUseNes41Miniv3Prompting = defineExpSetting<boolean>('chat.advanced.inlineEdits.xtabProvider.useNes41Miniv3Prompting', false, INTERNAL_RESTRICTED);
699699
export const InlineEditsXtabCodexV21NesUnified = defineExpSetting<boolean>('chat.advanced.inlineEdits.xtabProvider.codexv21nesUnified', false, INTERNAL_RESTRICTED);
700700
export const InlineEditsXtabMaxMergeConflictLines = defineExpSetting<number | undefined>('chat.advanced.inlineEdits.xtabProvider.maxMergeConflictLines', undefined, INTERNAL_RESTRICTED);
701+
export const InlineEditsXtabOnlyMergeConflictLines = defineExpSetting<boolean>('chat.advanced.inlineEdits.xtabProvider.onlyMergeConflictLines', false, INTERNAL_RESTRICTED);
701702
export const InlineEditsUndoInsertionFilteringEnabled = defineExpSetting<boolean>('chat.advanced.inlineEdits.undoInsertionFilteringEnabled', true, INTERNAL_RESTRICTED);
702703
export const InlineEditsDiagnosticsExplorationEnabled = defineSetting<boolean | undefined>('chat.advanced.inlineEdits.inlineEditsDiagnosticsExplorationEnabled', false, INTERNAL_RESTRICTED);
703704
export const EditSourceTrackingShowDecorations = defineSetting('chat.advanced.editSourceTracking.showDecorations', false, INTERNAL);

0 commit comments

Comments
 (0)