From 762a06c6bcfbcc1e40ba670bae10bacdbb973524 Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Fri, 10 Mar 2023 16:16:49 +0000 Subject: 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 --- runtime/lua/vim/treesitter/languagetree.lua | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/treesitter/languagetree.lua b/runtime/lua/vim/treesitter/languagetree.lua index c89419085f..26321cd1f4 100644 --- a/runtime/lua/vim/treesitter/languagetree.lua +++ b/runtime/lua/vim/treesitter/languagetree.lua @@ -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 -- cgit