Viewer controls
When a diff tab is open, diff-specific buttons appear in the content header.View settings are stored globally, shared by every diff tab, and preserved when you relaunch the app.
Unified view vs split view
- Unified
- Split
Shows changes stacked in a single column.
Wrap long lines can only be turned on in this view.

Syntax highlighting
In the Diff section under Settings → ParalleLane → Appearance, turn on Syntax highlighting to apply language-specific colors to keywords, strings, comments, and numbers.
Unrecognized file types or unsupported languages are shown as plain text.
Searching inside a diff
Open the search bar at the top right of the diff to show a match count (3 / 12) and move between results with the up and down buttons.
The key that opens it is listed on the Shortcuts page.

Copying a whole diff
Select and copy the whole diff, and you get standard diff text with hunk headers (@@ … @@) and +/− prefixes.
Image diffs
png, jpg, jpeg, gif, webp, bmp, and ico files use a dedicated view to show the before and after images.
The header shows a 2-up ↔ Swipe toggle button and a file history button, and each image gets its resolution and file size (1920×1080 · 245 KB) below it.
- 2-up
- Swipe
Shows the previous and current images side by side.
For an added or deleted image, only one side has content; the empty side shows No image.
Swipe works only when both images have loaded.
If the images can’t be overlaid (for example, when an image was added or deleted, or an LFS file hasn’t been downloaded), that file alone falls back to 2-up view.
Other file types
- SVG is treated as text, so it opens in the text diff.
- Binary files such as PDF and zip show a notice that no diff is available for the file.
- For Git LFS files, a Git LFS object card appears in place of the diff, showing the download status.
When there’s nothing to show
A diff with no lines in it says which of the reasons applies.A Working copy diff tab whose file no longer has changes closes on its own after you commit, stage, discard, or stash it, including when that happens in a terminal outside the app.
When the diff can’t be loaded
If reading the diff fails, the pane shows Couldn’t load this diff with the reason and a Retry button. The usual cause is that the commit no longer exists, for example after an amend or rebase run outside the app.This only replaces the pane when there’s nothing to show yet.
If a diff is already on screen and a background refresh fails, the diff you’re reading stays put and the failure comes through as a notification instead.



