feat(treesitter): clarify similar 'get_node_range' functions

The private 'get_node_range' function from the languagetree module has
been renamed and remains private as it serve a purpose that is only
relevant inside the languagetree module.

The 'get_node_range' upstreamed from nvim-treesitter in the treesitter
module has been made public as it is in itself a utlity function.
This commit is contained in:
Quentin Rasmont
2022-07-24 20:49:33 +02:00
committed by bfredl
parent 133ff6e11e
commit 244a115e49
2 changed files with 16 additions and 3 deletions

View File

@@ -141,6 +141,19 @@ function M.is_ancestor(dest, source)
return false
end
--- Get the node's range or unpack a range table
---
---@param node_or_range table
---
---@returns start_row, start_col, end_row, end_col
function M.get_node_range(node_or_range)
if type(node_or_range) == 'table' then
return unpack(node_or_range)
else
return node_or_range:range()
end
end
---Determines if a node contains a range
---@param node table The node
---@param range table The range

View File

@@ -299,7 +299,7 @@ function LanguageTree:included_regions()
end
---@private
local function get_node_range(node, id, metadata)
local function get_range_from_metadata(node, id, metadata)
if metadata[id] and metadata[id].range then
return metadata[id].range
end
@@ -362,7 +362,7 @@ function LanguageTree:_get_injections()
elseif name == 'combined' then
combined = true
elseif name == 'content' and #ranges == 0 then
table.insert(ranges, get_node_range(node, id, metadata))
table.insert(ranges, get_range_from_metadata(node, id, metadata))
-- Ignore any tags that start with "_"
-- Allows for other tags to be used in matches
elseif string.sub(name, 1, 1) ~= '_' then
@@ -371,7 +371,7 @@ function LanguageTree:_get_injections()
end
if #ranges == 0 then
table.insert(ranges, get_node_range(node, id, metadata))
table.insert(ranges, get_range_from_metadata(node, id, metadata))
end
end
end