mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
fix(edit): clear showcmd after clearing last put char (#34517)
Problem: Screen may be updated by a msg_showcmd event before '"' is cleared from the screen with register insertion. Solution: Emit the msg_showcmd event before clearing the '"'.
This commit is contained in:
@@ -3270,12 +3270,13 @@ static void ins_reg(void)
|
|||||||
ins_need_undo = true;
|
ins_need_undo = true;
|
||||||
}
|
}
|
||||||
u_sync_once = 0;
|
u_sync_once = 0;
|
||||||
clear_showcmd();
|
|
||||||
|
|
||||||
// If the inserted register is empty, we need to remove the '"'
|
// If the inserted register is empty, we need to remove the '"'. Do this before
|
||||||
|
// clearing showcmd, which emits an event that can also update the screen.
|
||||||
if (need_redraw || stuff_empty()) {
|
if (need_redraw || stuff_empty()) {
|
||||||
edit_unputchar();
|
edit_unputchar();
|
||||||
}
|
}
|
||||||
|
clear_showcmd();
|
||||||
|
|
||||||
// Disallow starting Visual mode here, would get a weird mode.
|
// Disallow starting Visual mode here, would get a weird mode.
|
||||||
if (!vis_active && VIsual_active) {
|
if (!vis_active && VIsual_active) {
|
||||||
|
@@ -24,7 +24,7 @@ describe('messages2', function()
|
|||||||
{1:~ }|*12
|
{1:~ }|*12
|
||||||
foo[+1] |
|
foo[+1] |
|
||||||
]])
|
]])
|
||||||
command('set ruler')
|
command('set ruler showcmd noshowmode')
|
||||||
feed('g<lt>')
|
feed('g<lt>')
|
||||||
screen:expect([[
|
screen:expect([[
|
||||||
|
|
|
|
||||||
@@ -68,6 +68,19 @@ describe('messages2', function()
|
|||||||
{4: 1 %a "[No Name]" line 1 }|
|
{4: 1 %a "[No Name]" line 1 }|
|
||||||
1,1 All|
|
1,1 All|
|
||||||
]])
|
]])
|
||||||
|
-- edit_unputchar() does not clear already updated screen #34515.
|
||||||
|
feed('qix<Esc>dwi<C-r>')
|
||||||
|
screen:expect([[
|
||||||
|
{18:^"} |
|
||||||
|
{1:~ }|*12
|
||||||
|
^R 1,1 All|
|
||||||
|
]])
|
||||||
|
feed('-')
|
||||||
|
screen:expect([[
|
||||||
|
x^ |
|
||||||
|
{1:~ }|*12
|
||||||
|
1,2 All|
|
||||||
|
]])
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
Reference in New Issue
Block a user