No description
| .github | ||
| doc | ||
| lua/diffs | ||
| plugin | ||
| scripts | ||
| spec | ||
| .busted | ||
| .editorconfig | ||
| .gitignore | ||
| .luarc.json | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc | ||
| diffs.nvim-scm-1.rockspec | ||
| LICENSE | ||
| README.md | ||
| selene.toml | ||
| stylua.toml | ||
| vim.toml | ||
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
Using lazy.nvim:
{
'barrettruth/diffs.nvim',
dependencies = { 'tpope/vim-fugitive' },
opts = {},
}
Or via luarocks:
luarocks install diffs.nvim
Documentation
:help diffs.nvim
Known Limitations
- Syntax "flashing": diffs.nvim hooks into the
FileType fugitiveevent triggered by vim-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.