# fugitive-ts.nvim **Treesitter syntax highlighting for vim-fugitive** Enhance the great `vim-fugitive` with syntax-aware code to easily work with diffs. ![fugitive-ts.nvim preview](https://github.com/user-attachments/assets/fc849310-09c8-4282-8a92-a2edaf8fe2b4) ## Features - Treesitter syntax highlighting in `:Git` diffs and commit views - `:Gdiffsplit` / `:Gvdiffsplit` syntax through diff backgrounds - 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](https://github.com/tpope/vim-fugitive) ## Installation Using [lazy.nvim](https://github.com/folke/lazy.nvim): ```lua { 'barrettruth/fugitive-ts.nvim', dependencies = { 'tpope/vim-fugitive' }, opts = {}, } ``` ## Documentation ```vim :help fugitive-ts.nvim ``` ## Known Limitations - Syntax "flashing": `fugitive-ts.nvim` hooks into the `FileType fugitive` event triggered by `vim-fugitive`, at which point the `fugitive` buffer is preliminarily painted. The buffer is then re-painted after `debounce_ms` milliseconds, causing an unavoidable visual "flash" even when `debounce_ms = 0`. Feel free to reach out if you know how to fix this! ## Acknowledgements - [vim-fugitive](https://github.com/tpope/vim-fugitive) - [codediff.nvim](https://github.com/esmuellert/codediff.nvim) - [diffview.nvim](https://github.com/sindrets/diffview.nvim) - [resolve.nvim](https://github.com/spacedentist/resolve.nvim)