fix(treesitter): highlight group for EditQuery captures #36265

fix(treesitter): more distinctive highlight for EditQuery captures

Problem: EditQuery shows captures in the source buffer using the Title
highlight group, which could be too similar to Normal.

Solution: Use a virtual text diagnostic highlight group: they are
displayed in a similar manner to the query captures so we can assume
that the color scheme should have appropriate styling applied to make
them visible.
This commit is contained in:
Michele Campeotto
2026-02-12 14:07:13 +01:00
committed by GitHub
parent fd69b71119
commit d0822bbd15
3 changed files with 11 additions and 7 deletions

View File

@@ -1582,9 +1582,11 @@ edit({lang}) *vim.treesitter.query.edit()*
completes available parsers.
If you move the cursor to a capture name ("@foo"), text matching the
capture is highlighted in the source buffer. The query editor is a scratch
buffer, use `:write` to save it. You can find example queries at
`$VIMRUNTIME/queries/`.
capture is highlighted with |hl-DiagnosticVirtualTextHint| in the source
buffer.
The query editor is a scratch buffer, use `:write` to save it. You can
find example queries at `$VIMRUNTIME/queries/`.
Parameters: ~
• {lang} (`string?`) language to open the query editor for. If omitted,

View File

@@ -608,7 +608,7 @@ local function update_editor_highlights(query_win, base_win, lang)
end_col = end_col,
hl_group = 'Visual',
virt_text = {
{ capture_name, 'Title' },
{ capture_name, 'DiagnosticVirtualTextHint' },
},
})
end

View File

@@ -1196,9 +1196,11 @@ end
--- Can also be shown with the [:EditQuery]() command. `:EditQuery <tab>` completes available
--- parsers.
---
--- If you move the cursor to a capture name ("@foo"), text matching the capture is highlighted in
--- the source buffer. The query editor is a scratch buffer, use `:write` to save it. You can find
--- example queries at `$VIMRUNTIME/queries/`.
--- If you move the cursor to a capture name ("@foo"), text matching the capture is highlighted
--- with |hl-DiagnosticVirtualTextHint| in the source buffer.
---
--- The query editor is a scratch buffer, use `:write` to save it. You can find example queries
--- at `$VIMRUNTIME/queries/`.
---
--- @param lang? string language to open the query editor for. If omitted, inferred from the current buffer's filetype.
function M.edit(lang)