diff options
author | LW <git@llllvvuu.dev> | 2023-09-14 03:36:16 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-14 03:36:16 -0700 |
commit | 9fc321c9768d1a18893e14f46b0ebacef1be1db4 (patch) | |
tree | 8037b4d0954e0bbd5a6b8fe583346ed80438e83b | |
parent | a4743487b71b54f05063465d5f8cde8014bcb73c (diff) | |
download | rneovim-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.txt | 2 | ||||
-rw-r--r-- | runtime/doc/news.txt | 3 | ||||
-rw-r--r-- | runtime/doc/treesitter.txt | 9 | ||||
-rw-r--r-- | runtime/lua/vim/treesitter/languagetree.lua | 3 |
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 |