feat: enable vim syntax fallback by default (#152)

## Problem

Languages without a treesitter parser (COBOL, Fortran, etc.) got no
syntax highlighting because \`highlights.vim.enabled\` defaulted to
\`false\`.

## Solution

Flip the default to \`true\`. The vim syntax path is already deferred
via \`vim.schedule\` so it never blocks the first paint. \`max_lines =
200\` stays unchanged — appropriate given the ~30x slower per-hunk cost
vs treesitter.
This commit is contained in:
Barrett Ruth 2026-03-05 11:13:28 -05:00 committed by GitHub
parent e1d3b81607
commit 29e624d9f0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 12 additions and 10 deletions

View file

@ -15,11 +15,11 @@ with language-aware syntax highlighting.
[vscode-diff](https://github.com/esmuellert/codediff.nvim) FFI backend for
word-level accuracy)
- `:Gdiff` unified diff against any revision
- Background-only diff colors for `&diff` buffers
- Inline merge conflict detection, highlighting, and resolution
- Email-quoted diff highlighting (`> diff ...` prefixes, arbitrary nesting
depth)
- Vim syntax fallback, configurable blend/priorities
- Email quoting/patch syntax support (`> diff ...`)
- Vim syntax fallback
- Configurable highlighiting blend & priorities
- Context-inclusive, high-accuracy highlights
## Requirements

View file

@ -89,7 +89,7 @@ Configuration is done via `vim.g.diffs`. Set this before the plugin loads:
max_lines = 500,
},
vim = {
enabled = false,
enabled = true,
max_lines = 200,
},
intra = {
@ -204,7 +204,7 @@ Configuration is done via `vim.g.diffs`. Set this before the plugin loads:
See |diffs.TreesitterConfig| for fields.
{vim} (table, default: see below)
Vim syntax highlighting options (experimental).
Vim syntax fallback highlighting options.
See |diffs.VimConfig| for fields.
{intra} (table, default: see below)
@ -269,13 +269,15 @@ Configuration is done via `vim.g.diffs`. Set this before the plugin loads:
*diffs.VimConfig*
Vim config fields: ~
{enabled} (boolean, default: false)
{enabled} (boolean, default: true)
Use vim syntax highlighting as fallback when no
treesitter parser is available for a language.
Creates a scratch buffer, sets the filetype, and
queries |synID()| per character to extract
highlight groups. Slower than treesitter but
covers languages without a TS parser installed.
highlight groups. Deferred via |vim.schedule()|
so it never blocks the first paint. Slower than
treesitter but covers languages without a TS
parser installed (e.g., COBOL, Fortran).
{max_lines} (integer, default: 200)
Skip vim syntax highlighting for hunks larger than

View file

@ -124,7 +124,7 @@ local default_config = {
max_lines = 500,
},
vim = {
enabled = false,
enabled = true,
max_lines = 200,
},
intra = {