2.2 KiB
2.2 KiB
diffs.nvim
Syntax highlighting for diffs in Neovim
Enhance vim-fugitive and Neovim's built-in diff mode with language-aware syntax highlighting.
Features
- Treesitter syntax highlighting in
:Gitdiffs and commit views :Gdiffsplit/:Gvdiffsplitsyntax through diff backgrounds- Background-only diff colors for any
&diffbuffer (:diffthis,vimdiff) - Vim syntax fallback for languages without a treesitter parser
- Hunk header context highlighting (
@@ ... @@ function foo()) - Configurable debouncing, max lines, and diff prefix concealment
Requirements
- Neovim 0.9.0+
- vim-fugitive (optional, for unified diff syntax highlighting)
Installation
Install with your package manager of choice or via luarocks:
luarocks install diffs.nvim
Documentation
:help diffs.nvim
Known Limitations
-
Syntax flashing:
diffs.nvimhooks into theFileType fugitiveevent triggered byvim-fugitive, at which point the buffer is preliminarily painted. The buffer is then re-painted afterdebounce_msmilliseconds, causing an unavoidable visual "flash" even whendebounce_ms = 0. -
Conflicting diff plugins:
diffs.nvimmay not interact well with other plugins that modify diff highlighting. Known plugins that may conflict:diffview.nvim- provides its own diff highlighting and conflict resolution UImini.diff- visualizes buffer differences with its own highlighting systemgitsigns.nvim- generally compatible, but both plugins modifying line highlights may produce unexpected resultsgit-conflict.nvim- conflict marker highlighting may overlap withdiffs.nvim