mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #9783 from justinmk/inccommand-ignore-redraw
This commit is contained in:
commit
9ddf99172c
@ -6392,6 +6392,7 @@ void ex_substitute(exarg_T *eap)
|
||||
}
|
||||
|
||||
block_autocmds(); // Disable events during command preview.
|
||||
input_disable_events();
|
||||
|
||||
char_u *save_eap = eap->arg;
|
||||
garray_T save_view;
|
||||
@ -6434,6 +6435,7 @@ void ex_substitute(exarg_T *eap)
|
||||
restore_search_patterns();
|
||||
win_size_restore(&save_view);
|
||||
ga_clear(&save_view);
|
||||
input_enable_events();
|
||||
unblock_autocmds();
|
||||
}
|
||||
|
||||
|
@ -7807,11 +7807,12 @@ static void ex_redir(exarg_T *eap)
|
||||
redir_off = FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* ":redraw": force redraw
|
||||
*/
|
||||
/// ":redraw": force redraw
|
||||
static void ex_redraw(exarg_T *eap)
|
||||
{
|
||||
if (State & CMDPREVIEW) {
|
||||
return; // Ignore :redraw during 'inccommand' preview. #9777
|
||||
}
|
||||
int r = RedrawingDisabled;
|
||||
int p = p_lz;
|
||||
|
||||
@ -7840,11 +7841,12 @@ static void ex_redraw(exarg_T *eap)
|
||||
ui_flush();
|
||||
}
|
||||
|
||||
/*
|
||||
* ":redrawstatus": force redraw of status line(s)
|
||||
*/
|
||||
/// ":redrawstatus": force redraw of status line(s)
|
||||
static void ex_redrawstatus(exarg_T *eap)
|
||||
{
|
||||
if (State & CMDPREVIEW) {
|
||||
return; // Ignore :redrawstatus during 'inccommand' preview. #9777
|
||||
}
|
||||
int r = RedrawingDisabled;
|
||||
int p = p_lz;
|
||||
|
||||
|
@ -2607,3 +2607,30 @@ it(':substitute with inccommand during :terminal activity', function()
|
||||
|
||||
end)
|
||||
end)
|
||||
|
||||
it(':substitute with inccommand, timer-induced :redraw #9777', function()
|
||||
local screen = Screen.new(30,12)
|
||||
clear()
|
||||
command('set cmdwinheight=3')
|
||||
command('call timer_start(10, {-> execute("redraw")}, {"repeat":-1})')
|
||||
command('call timer_start(10, {-> execute("redrawstatus")}, {"repeat":-1})')
|
||||
common_setup(screen, 'split', 'foo bar baz\nbar baz fox\nbar foo baz')
|
||||
|
||||
feed('gg')
|
||||
feed(':%s/foo/ZZZ')
|
||||
sleep(20) -- Allow some timer activity.
|
||||
screen:expect([[
|
||||
{12:ZZZ} bar baz |
|
||||
bar baz fox |
|
||||
bar {12:ZZZ} baz |
|
||||
{15:~ }|
|
||||
{15:~ }|
|
||||
{15:~ }|
|
||||
{11:[No Name] [+] }|
|
||||
|1| {12:ZZZ} bar baz |
|
||||
|3| bar {12:ZZZ} baz |
|
||||
{15:~ }|
|
||||
{10:[Preview] }|
|
||||
:%s/foo/ZZZ^ |
|
||||
]])
|
||||
end)
|
||||
|
Loading…
Reference in New Issue
Block a user