mirror of
https://github.com/neovim/neovim.git
synced 2025-10-17 23:31:51 +00:00
fix(treesitter): remove more double recursion
Do not call `for_each_child` in functions that are already recursive.
This commit is contained in:
@@ -897,6 +897,20 @@ function LanguageTree:_edit(
|
||||
end
|
||||
return true
|
||||
end)
|
||||
|
||||
for _, child in pairs(self._children) do
|
||||
child:_edit(
|
||||
start_byte,
|
||||
end_byte_old,
|
||||
end_byte_new,
|
||||
start_row,
|
||||
start_col,
|
||||
end_row_old,
|
||||
end_col_old,
|
||||
end_row_new,
|
||||
end_col_new
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
---@package
|
||||
@@ -943,20 +957,17 @@ function LanguageTree:_on_bytes(
|
||||
)
|
||||
|
||||
-- Edit trees together BEFORE emitting a bytes callback.
|
||||
---@private
|
||||
self:for_each_child(function(child)
|
||||
child:_edit(
|
||||
start_byte,
|
||||
start_byte + old_byte,
|
||||
start_byte + new_byte,
|
||||
start_row,
|
||||
start_col,
|
||||
start_row + old_row,
|
||||
old_end_col,
|
||||
start_row + new_row,
|
||||
new_end_col
|
||||
)
|
||||
end, true)
|
||||
self:_edit(
|
||||
start_byte,
|
||||
start_byte + old_byte,
|
||||
start_byte + new_byte,
|
||||
start_row,
|
||||
start_col,
|
||||
start_row + old_row,
|
||||
old_end_col,
|
||||
start_row + new_row,
|
||||
new_end_col
|
||||
)
|
||||
|
||||
self:_do_callback(
|
||||
'bytes',
|
||||
@@ -1017,9 +1028,9 @@ function LanguageTree:register_cbs(cbs, recursive)
|
||||
end
|
||||
|
||||
if recursive then
|
||||
self:for_each_child(function(child)
|
||||
for _, child in pairs(self._children) do
|
||||
child:register_cbs(cbs, true)
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user