No description
Find a file
2026-02-01 19:38:33 -05:00
.github/workflows fix: correct ci 2026-02-01 19:03:52 -05:00
doc feat: more config options 2026-02-01 19:35:19 -05:00
lua/fugitive-ts feat: more config options 2026-02-01 19:35:19 -05:00
plugin feat: add the entire plugin 2026-02-01 17:38:32 -05:00
scripts feat(doc): readme 2026-02-01 19:37:44 -05:00
.editorconfig feat: initial setup files 2026-02-01 16:30:24 -05:00
.gitignore feat: initial setup files 2026-02-01 16:30:24 -05:00
.luarc.json feat: initial setup files 2026-02-01 16:30:24 -05:00
.pre-commit-config.yaml fix: correct ci 2026-02-01 19:03:52 -05:00
.prettierignore feat: initial setup files 2026-02-01 16:30:24 -05:00
.prettierrc feat: initial setup files 2026-02-01 16:30:24 -05:00
fugitive-ts.nvim-scm-1.rockspec feat: add rockspec 2026-02-01 17:02:07 -05:00
LICENSE feat: initial setup files 2026-02-01 16:30:24 -05:00
README.md feat(doc): readme 2026-02-01 19:37:44 -05:00
selene.toml feat: initial setup files 2026-02-01 16:30:24 -05:00
stylua.toml feat: initial setup files 2026-02-01 16:30:24 -05:00
vim.toml feat: initial setup files 2026-02-01 16:30:24 -05:00

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

Similar Projects