diff options
author | “jvgrootveld” <“justin.vangrootveld@gmail.com”> | 2021-01-18 08:17:12 +0100 |
---|---|---|
committer | “jvgrootveld” <“justin.vangrootveld@gmail.com”> | 2021-01-18 08:17:12 +0100 |
commit | 9bed991cfb2d40911eaf149b705da4d3b77a9c28 (patch) | |
tree | 95d3fffad52b3fee4c189712b3df660909e76ac7 /runtime/lua/vim/treesitter/query.lua | |
parent | a2818819bb5afc3283e935727d5a1b0e9d1cf6b3 (diff) | |
download | rneovim-9bed991cfb2d40911eaf149b705da4d3b77a9c28.tar.gz rneovim-9bed991cfb2d40911eaf149b705da4d3b77a9c28.tar.bz2 rneovim-9bed991cfb2d40911eaf149b705da4d3b77a9c28.zip |
treesitter: Fix linter warning and add helper function to remove duplicated logic
This function returns the start and stop value if set else the node's range is used
When the node's range is used, the stop is incremented by 1 to make the search inclusive
Diffstat (limited to 'runtime/lua/vim/treesitter/query.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/query.lua | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/runtime/lua/vim/treesitter/query.lua b/runtime/lua/vim/treesitter/query.lua index 9d1f265e54..e49f54681d 100644 --- a/runtime/lua/vim/treesitter/query.lua +++ b/runtime/lua/vim/treesitter/query.lua @@ -340,6 +340,19 @@ function Query:apply_directives(match, pattern, source, metadata) end end + +--- Returns the start and stop value if set else the node's range. +-- When the node's range is used, the stop is incremented by 1 +-- to make the search inclusive. +local function value_or_node_range(start, stop, node) + if start == nil and stop == nil then + local node_start, _, node_stop, _ = node:range() + return node_start, node_stop + 1 -- Make stop inclusive + end + + return start, stop +end + --- Iterates of the captures of self on a given range. -- -- @param node The node under witch the search will occur @@ -354,10 +367,7 @@ function Query:iter_captures(node, source, start, stop) source = vim.api.nvim_get_current_buf() end - if start == nil and stop == nil then - start, _, stop, _ = node:range() - stop = stop + 1 -- Make stop inclusive - end + start, stop = value_or_node_range(start, stop, node) local raw_iter = node:_rawquery(self.query, true, start, stop) local function iter() @@ -392,10 +402,7 @@ function Query:iter_matches(node, source, start, stop) source = vim.api.nvim_get_current_buf() end - if start == nil and stop == nil then - start, _, stop, _ = node:range() - stop = stop + 1 -- Make stop inclusive - end + start, stop = value_or_node_range(start, stop, node) local raw_iter = node:_rawquery(self.query, false, start, stop) local function iter() |