diff options
| author | Stephan Seitz <stephan.seitz@fau.de> | 2020-10-18 16:07:36 +0200 |
|---|---|---|
| committer | Kiyan Yazdani <yazdani.kiyan@protonmail.com> | 2020-10-26 18:22:19 +0100 |
| commit | aa4c3e83e3d347bf37161b117c8c1e2d95031d2d (patch) | |
| tree | 4cf5e112f79d7f6a26016413d8e6e94626688bec /lua/nvim-treesitter/query.lua | |
| parent | c3b526fe51d6f4dd1dda099d69258909d0abb531 (diff) | |
Add virtual range for creating node-like objects from multiple nodes
Diffstat (limited to 'lua/nvim-treesitter/query.lua')
| -rw-r--r-- | lua/nvim-treesitter/query.lua | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lua/nvim-treesitter/query.lua b/lua/nvim-treesitter/query.lua index 09fdbbdd..4cb5993b 100644 --- a/lua/nvim-treesitter/query.lua +++ b/lua/nvim-treesitter/query.lua @@ -1,5 +1,6 @@ local api = vim.api local tsq = require'vim.treesitter.query' +local tsrange = require'nvim-treesitter.tsrange' local utils = require'nvim-treesitter.utils' local parsers = require'nvim-treesitter.parsers' local caching = require'nvim-treesitter.caching' @@ -98,6 +99,10 @@ function M.iter_prepared_matches(query, qnode, bufnr, start_row, end_row) if pred[1] == "set!" and type(pred[2]) == "string" then insert_to_path(prepared_match, split(pred[2]), pred[3]) end + if pred[1] == "make-range!" and type(pred[2]) == "string" and #pred == 4 then + insert_to_path(prepared_match, split(pred[2]..'.node'), + tsrange.TSRange.from_nodes(bufnr, match[pred[3]], match[pred[4]])) + end end end |
