commit d0822bbd155796bd04c0ef1fdf051e90a09fa0a7
parent fd69b7111912ae5ccb01327b130f582be23e44dc
Author: Michele Campeotto <micampe@micampe.it>
Date: Thu, 12 Feb 2026 14:07:13 +0100
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.
Diffstat:
3 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt
@@ -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,
diff --git a/runtime/lua/vim/treesitter/dev.lua b/runtime/lua/vim/treesitter/dev.lua
@@ -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
diff --git a/runtime/lua/vim/treesitter/query.lua b/runtime/lua/vim/treesitter/query.lua
@@ -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)