From aa17a8a4191a04604b3a402e75d5c7e7b8149da4 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 18 Jun 2026 15:01:12 +0200 Subject: [PATCH] fix(vscode): keep diff identifiers intact --- .changeset/keep-diff-identifiers-intact.md | 5 +++++ packages/kilo-ui/src/pierre/index.test.ts | 6 +++--- packages/kilo-ui/src/pierre/index.ts | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 .changeset/keep-diff-identifiers-intact.md diff --git a/.changeset/keep-diff-identifiers-intact.md b/.changeset/keep-diff-identifiers-intact.md new file mode 100644 index 0000000000..57c03dbff5 --- /dev/null +++ b/.changeset/keep-diff-identifiers-intact.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Keep changed identifiers intact when highlighting edits within diff lines. diff --git a/packages/kilo-ui/src/pierre/index.test.ts b/packages/kilo-ui/src/pierre/index.test.ts index 5f2df0e951..7bc73fd3a2 100644 --- a/packages/kilo-ui/src/pierre/index.test.ts +++ b/packages/kilo-ui/src/pierre/index.test.ts @@ -2,8 +2,8 @@ import { describe, expect, test } from "bun:test" import { createDefaultOptions } from "./index" describe("Pierre diff options", () => { - test("highlights changed characters in unified and split diffs", () => { - expect(createDefaultOptions("unified").lineDiffType).toBe("char") - expect(createDefaultOptions("split").lineDiffType).toBe("char") + test("keeps changed identifiers intact in unified and split diffs", () => { + expect(createDefaultOptions("unified").lineDiffType).toBe("word-alt") + expect(createDefaultOptions("split").lineDiffType).toBe("word-alt") }) }) diff --git a/packages/kilo-ui/src/pierre/index.ts b/packages/kilo-ui/src/pierre/index.ts index 1df03fb88d..7b4b13aabe 100644 --- a/packages/kilo-ui/src/pierre/index.ts +++ b/packages/kilo-ui/src/pierre/index.ts @@ -10,7 +10,9 @@ import { createDefaultOptions as defaults, styleVariables } from "@opencode-ai/u export { styleVariables } -export const LINE_DIFF_TYPE = "char" as const +// Character matching fragments inserted identifiers when they share letters with +// existing symbols. Word-alt keeps those logical additions visually intact. +export const LINE_DIFF_TYPE = "word-alt" as const // Pierre 1.1 treats its changed-line override properties as tint targets. Apply // Kilo semantic surfaces at the computed row level so host diff colors stay final.