diff options
author | Quentin Rasmont <qrasmont@gmail.com> | 2022-04-26 22:42:48 +0200 |
---|---|---|
committer | bfredl <bjorn.linse@gmail.com> | 2022-08-25 18:01:14 +0200 |
commit | 733b2e12b86a34c00aa07e0491762f88582792a5 (patch) | |
tree | f7e07159cdd0b3b1a7c08f94223139d374a2187f /runtime/lua/vim/treesitter/query.lua | |
parent | 3aba4ba37859e4407eff2bb3f4d99c44b108ed79 (diff) | |
download | rneovim-733b2e12b86a34c00aa07e0491762f88582792a5.tar.gz rneovim-733b2e12b86a34c00aa07e0491762f88582792a5.tar.bz2 rneovim-733b2e12b86a34c00aa07e0491762f88582792a5.zip |
feat(treesitter): add opts.concat to query.get_text_node
As part of the upstream of utility functions from nvim-treesitter, this
option when set to false allows to return a table (downstream behavior).
Effectively making the switch from the downstream to the upstream
function much easier.
Diffstat (limited to 'runtime/lua/vim/treesitter/query.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/query.lua | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/runtime/lua/vim/treesitter/query.lua b/runtime/lua/vim/treesitter/query.lua index 103e85abfd..697e2e7691 100644 --- a/runtime/lua/vim/treesitter/query.lua +++ b/runtime/lua/vim/treesitter/query.lua @@ -181,9 +181,14 @@ end --- Gets the text corresponding to a given node --- ----@param node the node ----@param source The buffer or string from which the node is extracted -function M.get_node_text(node, source) +---@param node table The node +---@param source table The buffer or string from which the node is extracted +---@param opts table Optional parameters. +--- - concat: (boolean default true) Concatenate result in a string +function M.get_node_text(node, source, opts) + opts = opts or {} + local concat = vim.F.if_nil(opts.concat, true) + local start_row, start_col, start_byte = node:start() local end_row, end_col, end_byte = node:end_() @@ -210,7 +215,7 @@ function M.get_node_text(node, source) end end - return table.concat(lines, '\n') + return concat and table.concat(lines, '\n') or lines elseif type(source) == 'string' then return source:sub(start_byte + 1, end_byte) end |