From 58e37d7df8ab3afc4d77e6ff1248d26a2559399e Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Mon, 10 Aug 2020 09:41:57 +0200 Subject: treesitter: add contains? predicate --- runtime/lua/vim/treesitter/query.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'runtime/lua') 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 -- cgit