mirror of
https://github.com/neovim/neovim.git
synced 2026-01-28 08:02:41 +10:00
fix(inccommand): avoid unnecessary redraw when not showing (#20244)
This commit is contained in:
@@ -1190,6 +1190,8 @@ describe(":substitute, inccommand=split", function()
|
||||
end)
|
||||
|
||||
it("deactivates if 'redrawtime' is exceeded #5602", function()
|
||||
-- prevent redraws from 'incsearch'
|
||||
meths.set_option('incsearch', false)
|
||||
-- Assert that 'inccommand' is ENABLED initially.
|
||||
eq("split", eval("&inccommand"))
|
||||
-- Set 'redrawtime' to minimal value, to ensure timeout is triggered.
|
||||
@@ -2972,6 +2974,59 @@ it(':substitute with inccommand, does not crash if range contains invalid marks'
|
||||
]])
|
||||
end)
|
||||
|
||||
it(':substitute with inccommand, no unnecessary redraw if preview is not shown', function()
|
||||
local screen = Screen.new(60, 6)
|
||||
clear()
|
||||
common_setup(screen, 'split', 'test')
|
||||
feed(':ls<CR>')
|
||||
screen:expect([[
|
||||
test |
|
||||
{15:~ }|
|
||||
{11: }|
|
||||
:ls |
|
||||
1 %a + "[No Name]" line 1 |
|
||||
{13:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
feed(':s')
|
||||
-- no unnecessary redraw, so messages are still shown
|
||||
screen:expect([[
|
||||
test |
|
||||
{15:~ }|
|
||||
{11: }|
|
||||
:ls |
|
||||
1 %a + "[No Name]" line 1 |
|
||||
:s^ |
|
||||
]])
|
||||
feed('o')
|
||||
screen:expect([[
|
||||
test |
|
||||
{15:~ }|
|
||||
{11: }|
|
||||
:ls |
|
||||
1 %a + "[No Name]" line 1 |
|
||||
:so^ |
|
||||
]])
|
||||
feed('<BS>')
|
||||
screen:expect([[
|
||||
test |
|
||||
{15:~ }|
|
||||
{11: }|
|
||||
:ls |
|
||||
1 %a + "[No Name]" line 1 |
|
||||
:s^ |
|
||||
]])
|
||||
feed('/test')
|
||||
-- now inccommand is shown, so screen is redrawn
|
||||
screen:expect([[
|
||||
{12:test} |
|
||||
{15:~ }|
|
||||
{15:~ }|
|
||||
{15:~ }|
|
||||
{15:~ }|
|
||||
:s/test^ |
|
||||
]])
|
||||
end)
|
||||
|
||||
it(":substitute doesn't crash with inccommand, if undo is empty #12932", function()
|
||||
local screen = Screen.new(10,5)
|
||||
clear()
|
||||
|
||||
Reference in New Issue
Block a user