Skip to content

Commit 11681d2

Browse files
authored
🤖 fix: show old/new line numbers in diffs (#1126)
Aligns diff viewer with GitHub's visual/interaction model: - **Dual line-number columns** (old/new) to clarify pre- vs post-change lines - **Review note formatting** includes both ranges (e.g. `-12-14 +15-17`) - **Restored +/− indicators** with hover-to-replace review button (MessageSquare) - **Deduplicated rendering** via shared `DiffLineGutter` and `DiffIndicator` components - **Polished review input** styled to sit within the diff seamlessly, background matches surrounding line type (add/remove/context) _Generated with `mux`_
1 parent 422ec9c commit 11681d2

File tree

8 files changed

+546
-276
lines changed

8 files changed

+546
-276
lines changed

src/browser/components/ReviewsBanner.tsx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -137,17 +137,20 @@ const ReviewItem: React.FC<ReviewItemProps> = ({
137137
[handleSaveEdit, handleCancelEdit]
138138
);
139139

140-
// Format code for diff display - add diff markers if not present
140+
// Prefer selectedDiff (raw diff) when available so reviewers see syntax highlighting consistently.
141141
const diffContent = useMemo(() => {
142+
if (review.data.selectedDiff) {
143+
return review.data.selectedDiff;
144+
}
145+
146+
// Legacy: selectedCode may be plain code or diff-ish text.
142147
const lines = review.data.selectedCode.split("\n");
143-
// Check if lines already have diff markers
144148
const hasDiffMarkers = lines.some((l) => /^[+-\s]/.test(l));
145149
if (hasDiffMarkers) {
146150
return review.data.selectedCode;
147151
}
148-
// Add context markers
149152
return lines.map((l) => ` ${l}`).join("\n");
150-
}, [review.data.selectedCode]);
153+
}, [review.data.selectedCode, review.data.selectedDiff]);
151154

152155
const age = formatRelativeTime(review.createdAt);
153156

@@ -245,7 +248,13 @@ const ReviewItem: React.FC<ReviewItemProps> = ({
245248
<div className="border-border-light border-t">
246249
{/* Code diff */}
247250
<div className="max-h-32 overflow-auto text-[11px]">
248-
<DiffRenderer content={diffContent} showLineNumbers={false} fontSize="11px" />
251+
<DiffRenderer
252+
content={diffContent}
253+
showLineNumbers={Boolean(review.data.selectedDiff)}
254+
oldStart={review.data.oldStart ?? 1}
255+
newStart={review.data.newStart ?? 1}
256+
fontSize="11px"
257+
/>
249258
</div>
250259

251260
{/* Comment section */}

0 commit comments

Comments
 (0)