patch 9.1.1812: completion: flicker with slow LSPs
Problem: completion: flicker with slow LSPs Solution: Disable flushing the changed text (Girish Palya). In insert-mode completion, the leader text is temporarily deleted while searching for completion candidates. If the LSP server responds slowly, the client may call `:sleep` to wait, which triggers `out_flush()`. This causes the deleted text to briefly disappear before being redrawn when results arrive, producing a visible flicker. There are two possible fixes: 1. Suppress flushing while a user function (e.g. LSP client) is waiting. 2. Reinsert the deleted text before invoking the user function. This Commit implements (1), which is the simpler solution, though somewhat heavy-handed. If you think this may introduce unwanted side effects, I can rework it to use (2). closes: #18439 Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
8f214168bd
commit
71b97f2905
@ -2772,7 +2772,7 @@ out_flush(void)
|
||||
{
|
||||
int len;
|
||||
|
||||
if (out_pos == 0)
|
||||
if (no_flush > 0 || out_pos == 0)
|
||||
return;
|
||||
|
||||
// set out_pos to 0 before ui_write, to avoid recursiveness
|
||||
|
||||
Reference in New Issue
Block a user