diff --git a/src/tools/hashline-edit/diff-utils.test.ts b/src/tools/hashline-edit/diff-utils.test.ts index c3373d995..c7d218728 100644 --- a/src/tools/hashline-edit/diff-utils.test.ts +++ b/src/tools/hashline-edit/diff-utils.test.ts @@ -41,6 +41,23 @@ describe("generateUnifiedDiff", () => { expect(diff).toContain(" line 13") }) + it("limits each hunk to three context lines", () => { + //#given + const oldContent = createNumberedLines(20) + const newLines = oldContent.split("\n") + newLines[9] = "line 10 updated" + const newContent = newLines.join("\n") + + //#when + const diff = generateUnifiedDiff(oldContent, newContent, "sample.txt") + + //#then + expect(diff).toContain(" line 7") + expect(diff).toContain(" line 13") + expect(diff).not.toContain(" line 6") + expect(diff).not.toContain(" line 14") + }) + it("returns a diff string for identical content", () => { //#given const oldContent = "alpha\nbeta\ngamma" diff --git a/src/tools/hashline-edit/diff-utils.ts b/src/tools/hashline-edit/diff-utils.ts index 975438d27..10c3dfc9d 100644 --- a/src/tools/hashline-edit/diff-utils.ts +++ b/src/tools/hashline-edit/diff-utils.ts @@ -16,7 +16,7 @@ export function toHashlineContent(content: string): string { } export function generateUnifiedDiff(oldContent: string, newContent: string, filePath: string): string { - return createTwoFilesPatch(filePath, filePath, oldContent, newContent) + return createTwoFilesPatch(filePath, filePath, oldContent, newContent, undefined, undefined, { context: 3 }) } export function countLineDiffs(oldContent: string, newContent: string): { additions: number; deletions: number } {