No description
| .github/workflows | ||
| doc | ||
| lua/fugitive-ts | ||
| plugin | ||
| scripts | ||
| .editorconfig | ||
| .gitignore | ||
| .luarc.json | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc | ||
| fugitive-ts.nvim-scm-1.rockspec | ||
| LICENSE | ||
| README.md | ||
| selene.toml | ||
| stylua.toml | ||
| vim.toml | ||
fugitive-ts.nvim
Treesitter syntax highlighting for vim-fugitive diff views
Transform fugitive's regex-based diff highlighting into language-aware, treesitter-powered syntax highlighting.
Features
- Language-aware highlighting: Full treesitter syntax highlighting for code in diff hunks
- Automatic language detection: Detects language from filenames using Neovim's filetype detection
- Header context highlighting: Highlights function signatures in hunk
headers (
@@ ... @@ function foo()) - Performance optimized: Debounced updates, configurable max lines per hunk
- Zero configuration: Works out of the box with sensible defaults
Requirements
- Neovim 0.9.0+
- vim-fugitive
- Treesitter parsers for languages you want highlighted
Installation
Using lazy.nvim:
{
'barrettruth/fugitive-ts.nvim',
dependencies = { 'tpope/vim-fugitive' },
opts = {},
}
Configuration
require('fugitive-ts').setup({
enabled = true,
debug = false,
languages = {},
disabled_languages = {},
highlight_headers = true,
debounce_ms = 50,
max_lines_per_hunk = 500,
})
| Option | Default | Description |
|---|---|---|
enabled |
true |
Enable/disable highlighting |
debug |
false |
Log debug messages to :messages |
languages |
{} |
Custom filename → language mappings |
disabled_languages |
{} |
Languages to skip (e.g., {"markdown"}) |
highlight_headers |
true |
Highlight context in @@ ... @@ hunk headers |
debounce_ms |
50 |
Debounce delay for re-highlighting |
max_lines_per_hunk |
500 |
Skip treesitter for large hunks |
Documentation
:help fugitive-ts.nvim