MCPcopy Index your code
hub / github.com/anomalyco/opencode / fixDiffSelection

Function fixDiffSelection

packages/session-ui/src/pierre/diff-selection.ts:45–71  ·  view source on GitHub ↗
(root: ShadowRoot | undefined, range: SelectedLineRange | null)

Source from the content-addressed store, hash-verified

43}
44
45export function fixDiffSelection(root: ShadowRoot | undefined, range: SelectedLineRange | null) {
46 if (!range) return range
47 if (!root) return
48
49 const diffs = root.querySelector("[data-diff]")
50 if (!(diffs instanceof HTMLElement)) return
51
52 const split = diffs.dataset.diffType === "split"
53 const start = diffRowIndex(root, split, range.start, range.side)
54 const end = diffRowIndex(root, split, range.end, range.endSide ?? range.side)
55
56 if (start === undefined || end === undefined) {
57 if (root.querySelector("[data-line], [data-alt-line]") == null) return
58 return null
59 }
60 if (start <= end) return range
61
62 const side = range.endSide ?? range.side
63 const swapped: SelectedLineRange = {
64 start: range.end,
65 end: range.start,
66 }
67
68 if (side) swapped.side = side
69 if (range.endSide && range.side) swapped.endSide = range.side
70 return swapped
71}

Callers 3

setSelectedLinesFunction · 0.90
setSelectedLinesFunction · 0.90
DiffViewerFunction · 0.90

Calls 1

diffRowIndexFunction · 0.85

Tested by

no test coverage detected