aboutsummaryrefslogtreecommitdiff
path: root/test/functional/treesitter/highlight_spec.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2024-03-17 18:02:40 +0000
committerLewis Russell <me@lewisr.dev>2024-03-17 20:37:15 +0000
commit3b29b39e6deb212456eba691bc79b17edaa8717b (patch)
tree749b52c8824f25298624528a498f277c47d25991 /test/functional/treesitter/highlight_spec.lua
parent77a9f3395bd1e7184f4d735c01e50285e30477ab (diff)
downloadrneovim-3b29b39e6deb212456eba691bc79b17edaa8717b.tar.gz
rneovim-3b29b39e6deb212456eba691bc79b17edaa8717b.tar.bz2
rneovim-3b29b39e6deb212456eba691bc79b17edaa8717b.zip
fix(treesitter): revert to using iter_captures in highlighter
Fixes #27895
Diffstat (limited to 'test/functional/treesitter/highlight_spec.lua')
-rw-r--r--test/functional/treesitter/highlight_spec.lua26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/functional/treesitter/highlight_spec.lua b/test/functional/treesitter/highlight_spec.lua
index 8b405615e0..09a02ebfcb 100644
--- a/test/functional/treesitter/highlight_spec.lua
+++ b/test/functional/treesitter/highlight_spec.lua
@@ -762,6 +762,32 @@ describe('treesitter highlighting (C)', function()
]],
}
end)
+
+ it('gives higher priority to more specific captures #27895', function()
+ insert([[
+ void foo(int *bar);
+ ]])
+
+ local query = [[
+ "*" @operator
+
+ (parameter_declaration
+ declarator: (pointer_declarator) @variable.parameter)
+ ]]
+
+ exec_lua([[
+ local query = ...
+ vim.treesitter.query.set('c', 'highlights', query)
+ vim.treesitter.highlighter.new(vim.treesitter.get_parser(0, 'c'))
+ ]], query)
+
+ screen:expect{grid=[[
+ void foo(int {4:*}{11:bar}); |
+ ^ |
+ {1:~ }|*15
+ |
+ ]]}
+ end)
end)
describe('treesitter highlighting (lua)', function()