diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2021-02-06 10:17:40 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2021-02-10 18:57:49 +0100 |
commit | fa5f583981276cb3767f74bec553cfa90e47a74e (patch) | |
tree | 488cf123018992fd1e7a7732b3d033141067b4c0 /runtime/lua/vim/treesitter/languagetree.lua | |
parent | 230f2ff381d7bced4d1e19bd1853ce75cbde797a (diff) | |
download | rneovim-fa5f583981276cb3767f74bec553cfa90e47a74e.tar.gz rneovim-fa5f583981276cb3767f74bec553cfa90e47a74e.tar.bz2 rneovim-fa5f583981276cb3767f74bec553cfa90e47a74e.zip |
treesitter: propagate on_detach event properly
Diffstat (limited to 'runtime/lua/vim/treesitter/languagetree.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/languagetree.lua | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/runtime/lua/vim/treesitter/languagetree.lua b/runtime/lua/vim/treesitter/languagetree.lua index 6d47ed8365..a374974dca 100644 --- a/runtime/lua/vim/treesitter/languagetree.lua +++ b/runtime/lua/vim/treesitter/languagetree.lua @@ -35,6 +35,7 @@ function LanguageTree.new(source, lang, opts) _callbacks = { changedtree = {}, bytes = {}, + detach = {}, child_added = {}, child_removed = {} }, @@ -397,6 +398,11 @@ function LanguageTree:_on_bytes(bufnr, changed_tick, new_row, new_col, new_byte) end +function LanguageTree:_on_detach(...) + self:invalidate() + self:_do_callback('detach', ...) +end + --- Registers callbacks for the parser -- @param cbs An `nvim_buf_attach`-like table argument with the following keys : -- `on_bytes` : see `nvim_buf_attach`, but this will be called _after_ the parsers callback. @@ -416,6 +422,10 @@ function LanguageTree:register_cbs(cbs) table.insert(self._callbacks.bytes, cbs.on_bytes) end + if cbs.on_detach then + table.insert(self._callbacks.detach, cbs.on_detach) + end + if cbs.on_child_added then table.insert(self._callbacks.child_added, cbs.on_child_added) end |