diff options
author | Jaehwang Jung <tomtomjhj@gmail.com> | 2023-12-18 21:02:32 +0900 |
---|---|---|
committer | Christian Clason <c.clason@uni-graz.at> | 2023-12-19 12:24:06 +0100 |
commit | 90a12d4a164315628c01043108b6aaa8f3afb102 (patch) | |
tree | d8ad74f97fc92033dc9be6d3c5ba3e7fbcf95455 /runtime/lua/vim/treesitter/highlighter.lua | |
parent | 7f6b775b45de5011ff1c44e63e57551566d80704 (diff) | |
download | rneovim-90a12d4a164315628c01043108b6aaa8f3afb102.tar.gz rneovim-90a12d4a164315628c01043108b6aaa8f3afb102.tar.bz2 rneovim-90a12d4a164315628c01043108b6aaa8f3afb102.zip |
fix(treesitter): prepare highlight states for [s, ]s
Diffstat (limited to 'runtime/lua/vim/treesitter/highlighter.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/highlighter.lua | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/runtime/lua/vim/treesitter/highlighter.lua b/runtime/lua/vim/treesitter/highlighter.lua index 17543bc787..b2cc334bdc 100644 --- a/runtime/lua/vim/treesitter/highlighter.lua +++ b/runtime/lua/vim/treesitter/highlighter.lua @@ -163,6 +163,8 @@ end ---@param erow integer exclusive ---@private function TSHighlighter:prepare_highlight_states(srow, erow) + self._highlight_states = {} + self.tree:for_each_tree(function(tstree, tree) if not tstree then return @@ -202,11 +204,6 @@ function TSHighlighter:for_each_highlight_state(fn) end end ----@private -function TSHighlighter:reset_highlight_state() - self._highlight_states = {} -end - ---@package ---@param start_row integer ---@param new_end integer @@ -327,7 +324,7 @@ function TSHighlighter._on_spell_nav(_, _, buf, srow, _, erow, _) return end - self:reset_highlight_state() + self:prepare_highlight_states(srow, erow) for row = srow, erow do on_line_impl(self, buf, row, true) @@ -345,7 +342,6 @@ function TSHighlighter._on_win(_, _win, buf, topline, botline) return false end self.tree:parse({ topline, botline + 1 }) - self:reset_highlight_state() self:prepare_highlight_states(topline, botline + 1) self.redraw_count = self.redraw_count + 1 return true |