diff options
author | Thomas Vigouroux <tomvig38@gmail.com> | 2020-08-10 09:41:57 +0200 |
---|---|---|
committer | Thomas Vigouroux <tomvig38@gmail.com> | 2020-08-13 20:30:15 +0200 |
commit | 58e37d7df8ab3afc4d77e6ff1248d26a2559399e (patch) | |
tree | 73fccf9f8c4d6df5bb5c16b59d1ce0b74770bb99 /runtime/lua/vim/treesitter/query.lua | |
parent | 18c0e775286aa6621d9190db8cf02e65a3f3d61f (diff) | |
download | rneovim-58e37d7df8ab3afc4d77e6ff1248d26a2559399e.tar.gz rneovim-58e37d7df8ab3afc4d77e6ff1248d26a2559399e.tar.bz2 rneovim-58e37d7df8ab3afc4d77e6ff1248d26a2559399e.zip |
treesitter: add contains? predicate
Diffstat (limited to 'runtime/lua/vim/treesitter/query.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/query.lua | 13 |
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 |