aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2023-03-10 16:16:49 +0000
committerGitHub <noreply@github.com>2023-03-10 16:16:49 +0000
commit762a06c6bcfbcc1e40ba670bae10bacdbb973524 (patch)
tree35220bdc0bcd8b3a2562a7d553c64b619d1b8a72
parent845efb8e12cb014b385deac62fb83622a99024ec (diff)
downloadrneovim-762a06c6bcfbcc1e40ba670bae10bacdbb973524.tar.gz
rneovim-762a06c6bcfbcc1e40ba670bae10bacdbb973524.tar.bz2
rneovim-762a06c6bcfbcc1e40ba670bae10bacdbb973524.zip
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
-rw-r--r--runtime/doc/news.txt5
-rw-r--r--runtime/doc/treesitter.txt1
-rw-r--r--runtime/lua/vim/treesitter/languagetree.lua11
3 files changed, 6 insertions, 11 deletions
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt
index 04ae9360a0..801b74df45 100644
--- a/runtime/doc/news.txt
+++ b/runtime/doc/news.txt
@@ -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*
diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt
index c7a0e1927b..a8f25d2ff9 100644
--- a/runtime/doc/treesitter.txt
+++ b/runtime/doc/treesitter.txt
@@ -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|.
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