Back to Projects

differ.nvim

The whole diff and review loop in one Neovim plugin: local diffs, file history, hunk staging, GitHub PR review, and 3-way merge conflicts, all with the same UX.

Technologies Used

NeovimNeovimLuaLuaGoGo

About the Project

differ.nvim pulls the entire diff and review workflow into a single Neovim plugin. Staging a hunk and replying to a PR comment behave like the same tool because they run through one diff engine and one renderer. The default stacked dual-rail layout interleaves old and new lines per hunk with a dual line-number gutter, and side-by-side is a runtime re-render away. The GitHub side runs in a separate Go sidecar, so opening a PR or posting a review never blocks the editor and results stay cached between calls.

Key Features

  • Stacked dual-rail and side-by-side layouts from one hunk model, switchable at runtime as a pure re-render
  • In-editor GitHub PR review: inline comment threads, pending-review drafts, thread resolve, per-file viewed-state, CI checks, and lifecycle actions (merge, checkout, ready/draft, close)
  • Go sidecar owns the GitHub API so reviews never block the editor, with results cached between calls
  • File panel with the changed-file tree, status icons, +/- counts, and hunk- and file-level staging
  • File history for single files and branch ranges, each step a diff through the same engine
  • 3-way merge conflict resolution through the n-column renderer, resolved into the working-tree file
  • Word-level highlighting and Treesitter syntax by default, with real buffer lines so search, yank, and motions work