aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLW <git@llllvvuu.dev>2023-09-14 03:36:16 -0700
committerGitHub <noreply@github.com>2023-09-14 03:36:16 -0700
commit9fc321c9768d1a18893e14f46b0ebacef1be1db4 (patch)
tree8037b4d0954e0bbd5a6b8fe583346ed80438e83b
parenta4743487b71b54f05063465d5f8cde8014bcb73c (diff)
downloadrneovim-9fc321c9768d1a18893e14f46b0ebacef1be1db4.tar.gz
rneovim-9fc321c9768d1a18893e14f46b0ebacef1be1db4.tar.bz2
rneovim-9fc321c9768d1a18893e14f46b0ebacef1be1db4.zip
refactor(treesitter): deprecate for_each_child #25118
The name for_each_child is misleading and caused bugs. After #25111, #25115, there are no more usages of `for_each_child` in Nvim. In the future if we want to restore this functionality we can consider a generalized vim.traverse(node, key, visitor) function.
-rw-r--r--runtime/doc/deprecated.txt2
-rw-r--r--runtime/doc/news.txt3
-rw-r--r--runtime/doc/treesitter.txt9
-rw-r--r--runtime/lua/vim/treesitter/languagetree.lua3
4 files changed, 8 insertions, 9 deletions
diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt
index 81dd1e64bf..2e9312cf74 100644
--- a/runtime/doc/deprecated.txt
+++ b/runtime/doc/deprecated.txt
@@ -151,6 +151,8 @@ TREESITTER FUNCTIONS
and |TSNode:type()| instead.
- *vim.treesitter.query.get_query()* Use |vim.treesitter.query.get()|
instead.
+- *LanguageTree:for_each_child()* Use |LanguageTree:children()|
+ (non-recursive) instead.
LUA
- vim.register_keystroke_callback() Use |vim.on_key()| instead.
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt
index 93012e78a9..9adc90ac21 100644
--- a/runtime/doc/news.txt
+++ b/runtime/doc/news.txt
@@ -268,4 +268,7 @@ release.
• `vim.loop` has been renamed to `vim.uv`.
+• vim.treesitter.languagetree functions:
+ - |LanguageTree:for_each_child()| Use |LanguageTree:children()| (non-recursive) instead.
+
vim:tw=78:ts=8:sw=2:et:ft=help:norl:
diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt
index 287985f75b..9d07aee290 100644
--- a/runtime/doc/treesitter.txt
+++ b/runtime/doc/treesitter.txt
@@ -1094,15 +1094,6 @@ LanguageTree:destroy() *LanguageTree:destroy()*
Note: This DOES NOT remove this tree from a parent. Instead,
`remove_child` must be called on the parent to remove it.
- *LanguageTree:for_each_child()*
-LanguageTree:for_each_child({fn}, {include_self})
- Invokes the callback for each |LanguageTree| and its children recursively
-
- Parameters: ~
- • {fn} fun(tree: LanguageTree, lang: string)
- • {include_self} (boolean|nil) Whether to include the invoking tree in
- the results
-
LanguageTree:for_each_tree({fn}) *LanguageTree:for_each_tree()*
Invokes the callback for each |LanguageTree| recursively.
diff --git a/runtime/lua/vim/treesitter/languagetree.lua b/runtime/lua/vim/treesitter/languagetree.lua
index 6037b17b20..1ea0f6b2b9 100644
--- a/runtime/lua/vim/treesitter/languagetree.lua
+++ b/runtime/lua/vim/treesitter/languagetree.lua
@@ -451,11 +451,14 @@ function LanguageTree:parse(range)
return self._trees
end
+---@deprecated Misleading name. Use `LanguageTree:children()` (non-recursive) instead,
+--- add recursion yourself if needed.
--- Invokes the callback for each |LanguageTree| and its children recursively
---
---@param fn fun(tree: LanguageTree, lang: string)
---@param include_self boolean|nil Whether to include the invoking tree in the results
function LanguageTree:for_each_child(fn, include_self)
+ vim.deprecate('LanguageTree:for_each_child()', 'LanguageTree:children()', '0.11')
if include_self then
fn(self, self._lang)
end