feat!(treesitter): do not return changes from LanguageTree:parse()

Never return the changes an only notify them using the `on_changedtree`
callback.

It is not guaranteed for a plugin that it'll be the first one to call
`tree:parse()` and thus get the changes.

Closes #19915
This commit is contained in:
Lewis Russell 2023-03-10 16:16:49 +00:00 committed by GitHub
parent 845efb8e12
commit 762a06c6bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 11 deletions

View File

@ -232,7 +232,10 @@ The following deprecated functions or APIs were removed.
changes need to be contributed there first.)
See https://github.com/neovim/neovim/pull/20674.
- 'hkmap', 'hkmapp' and 'aleph' options were removed. Use 'keymap' option instead.
• 'hkmap', 'hkmapp' and 'aleph' options were removed. Use 'keymap' option instead.
• |LanguageTree:parse()| no longer returns changed regions. Please use the
`on_changedtree` callbacks instead.
==============================================================================
DEPRECATIONS *news-deprecations*

View File

@ -1099,7 +1099,6 @@ LanguageTree:parse({self}) *LanguageTree:parse()*
Return: ~
TSTree[]
(table|nil) Change list
LanguageTree:register_cbs({self}, {cbs}) *LanguageTree:register_cbs()*
Registers callbacks for the |LanguageTree|.

View File

@ -228,7 +228,6 @@ end
--- determine if any child languages should be created.
---
---@return TSTree[]
---@return table|nil Change list
function LanguageTree:parse()
if self:is_valid() then
self:_log('valid')
@ -302,18 +301,12 @@ function LanguageTree:parse()
})
self:for_each_child(function(child)
local _, child_changes = child:parse()
-- Propagate any child changes so they are included in the
-- the change list for the callback.
if child_changes then
vim.list_extend(changes, child_changes)
end
child:parse()
end)
self._valid = true
return self._trees, changes
return self._trees
end
--- Invokes the callback for each |LanguageTree| and its children recursively