aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/treesitter/query.lua
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/lua/vim/treesitter/query.lua')
-rw-r--r--runtime/lua/vim/treesitter/query.lua13
1 files changed, 13 insertions, 0 deletions
diff --git a/runtime/lua/vim/treesitter/query.lua b/runtime/lua/vim/treesitter/query.lua
index d16e1c3662..b30bf5fb6b 100644
--- a/runtime/lua/vim/treesitter/query.lua
+++ b/runtime/lua/vim/treesitter/query.lua
@@ -65,6 +65,19 @@ local predicate_handlers = {
return string.find(get_node_text(node, bufnr), regex)
end,
+
+ ["contains?"] = function(match, _, bufnr, predicate)
+ local node = match[predicate[2]]
+ local node_text = get_node_text(node, bufnr)
+
+ for i=3,#predicate do
+ if string.find(node_text, predicate[i], 1, true) then
+ return true
+ end
+ end
+
+ return false
+ end
}
--- Adds a new predicates to be used in queries