aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/buf.lua
diff options
context:
space:
mode:
authorSean Dewar <6256228+seandewar@users.noreply.github.com>2025-03-06 08:31:50 +0000
committerGitHub <noreply@github.com>2025-03-06 08:31:50 +0000
commitfa46441264b28e9272973ead7bea65f27868e94c (patch)
tree8c58e641725b5f2c7046e7a49e33ad4147161bbe /runtime/lua/vim/lsp/buf.lua
parent41b07b128ccbdc445c3a56618b0c6ec6ed0f3438 (diff)
downloadrneovim-fa46441264b28e9272973ead7bea65f27868e94c.tar.gz
rneovim-fa46441264b28e9272973ead7bea65f27868e94c.tar.bz2
rneovim-fa46441264b28e9272973ead7bea65f27868e94c.zip
fix(terminal): improve cursor refresh handling (#32596)
Problem: terminal mode cursor refresh logic has too many edge cases where it fails when events change curbuf. Solution: change the logic. Introduce cursor_visible to TerminalState to more reliably track if terminal mode has changed busy. Move visibility handling to refresh_cursor and move its call in refresh_terminal to terminal_check to avoid temporarily changed curbufs from influencing cursor state. This has the effect of "debouncing" shape/visibility updates to once per terminal state tick (with the final attributes taking effect, as expected). I think this is OK, but as a result it may also be warranted to update when redrawing during the same state tick (e.g: from events executing :redraw); this can be added later, if wanted. Also move previous tests to a more appropriate place.
Diffstat (limited to 'runtime/lua/vim/lsp/buf.lua')
0 files changed, 0 insertions, 0 deletions