feat(tui): add 'termsync' option (#25871)

The 'termsync' option enables a mode (provided the underlying terminal
supports it) where all screen updates during a redraw cycle are buffered
and drawn together when the redraw is complete. This eliminates tearing
or flickering in cases where Nvim redraws slower than the terminal
redraws the screen.
This commit is contained in:
Gregory Anders
2023-11-14 08:53:58 -06:00
committed by GitHub
parent b73a829837
commit ac8ed77afb
9 changed files with 130 additions and 2 deletions

View File

@@ -6978,6 +6978,15 @@ vim.o.tpf = vim.o.termpastefilter
vim.go.termpastefilter = vim.o.termpastefilter
vim.go.tpf = vim.go.termpastefilter
--- If the host terminal supports it, buffer all screen updates
--- made during a redraw cycle so that each screen is displayed in
--- the terminal all at once. This can prevent tearing or flickering
--- when the terminal updates faster than Nvim can redraw.
---
--- @type boolean
vim.o.termsync = true
vim.go.termsync = vim.o.termsync
--- Maximum width of text that is being inserted. A longer line will be
--- broken after white space to get this width. A zero value disables
--- this.