mirror of
https://github.com/neovim/neovim.git
synced 2025-10-01 07:28:34 +00:00
fix(edit): don't subtract msg_scrolled when removing double quote (#22630)
With msg_grid there is no need to subtract msg_scrolled.
This commit is contained in:
@@ -1510,14 +1510,14 @@ bool prompt_curpos_editable(void)
|
|||||||
// Undo the previous edit_putchar().
|
// Undo the previous edit_putchar().
|
||||||
void edit_unputchar(void)
|
void edit_unputchar(void)
|
||||||
{
|
{
|
||||||
if (pc_status != PC_STATUS_UNSET && pc_row >= msg_scrolled) {
|
if (pc_status != PC_STATUS_UNSET) {
|
||||||
if (pc_status == PC_STATUS_RIGHT) {
|
if (pc_status == PC_STATUS_RIGHT) {
|
||||||
curwin->w_wcol++;
|
curwin->w_wcol++;
|
||||||
}
|
}
|
||||||
if (pc_status == PC_STATUS_RIGHT || pc_status == PC_STATUS_LEFT) {
|
if (pc_status == PC_STATUS_RIGHT || pc_status == PC_STATUS_LEFT) {
|
||||||
redrawWinline(curwin, curwin->w_cursor.lnum);
|
redrawWinline(curwin, curwin->w_cursor.lnum);
|
||||||
} else {
|
} else {
|
||||||
grid_puts(&curwin->w_grid, pc_bytes, pc_row - msg_scrolled, pc_col, pc_attr);
|
grid_puts(&curwin->w_grid, pc_bytes, pc_row, pc_col, pc_attr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
-- Insert-mode tests.
|
-- Insert-mode tests.
|
||||||
|
|
||||||
local helpers = require('test.functional.helpers')(after_each)
|
local helpers = require('test.functional.helpers')(after_each)
|
||||||
|
local Screen = require('test.functional.ui.screen')
|
||||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
local expect = helpers.expect
|
local expect = helpers.expect
|
||||||
local command = helpers.command
|
local command = helpers.command
|
||||||
@@ -48,6 +49,48 @@ describe('insert-mode', function()
|
|||||||
feed('i<C-r>"')
|
feed('i<C-r>"')
|
||||||
expect('påskägg')
|
expect('påskägg')
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('double quote is removed after hit-enter prompt #22609', function()
|
||||||
|
local screen = Screen.new(60, 6)
|
||||||
|
screen:set_default_attr_ids({
|
||||||
|
[0] = {bold = true, foreground = Screen.colors.Blue},
|
||||||
|
[1] = {foreground = Screen.colors.Blue},
|
||||||
|
[2] = {foreground = Screen.colors.SlateBlue},
|
||||||
|
[3] = {bold = true},
|
||||||
|
[4] = {reverse = true, bold = true},
|
||||||
|
[5] = {background = Screen.colors.Red, foreground = Screen.colors.Red},
|
||||||
|
[6] = {background = Screen.colors.Red, foreground = Screen.colors.White},
|
||||||
|
[7] = {foreground = Screen.colors.SeaGreen, bold = true},
|
||||||
|
})
|
||||||
|
screen:attach()
|
||||||
|
feed('i<C-R>')
|
||||||
|
screen:expect([[
|
||||||
|
{1:^"} |
|
||||||
|
{0:~ }|
|
||||||
|
{0:~ }|
|
||||||
|
{0:~ }|
|
||||||
|
{0:~ }|
|
||||||
|
{3:-- INSERT --} |
|
||||||
|
]])
|
||||||
|
feed('={}<CR>')
|
||||||
|
screen:expect([[
|
||||||
|
{1:"} |
|
||||||
|
{0:~ }|
|
||||||
|
{4: }|
|
||||||
|
={5:{}{2:}} |
|
||||||
|
{6:E731: using Dictionary as a String} |
|
||||||
|
{7:Press ENTER or type command to continue}^ |
|
||||||
|
]])
|
||||||
|
feed('<CR>')
|
||||||
|
screen:expect([[
|
||||||
|
^ |
|
||||||
|
{0:~ }|
|
||||||
|
{0:~ }|
|
||||||
|
{0:~ }|
|
||||||
|
{0:~ }|
|
||||||
|
{3:-- INSERT --} |
|
||||||
|
]])
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('Ctrl-O', function()
|
describe('Ctrl-O', function()
|
||||||
|
Reference in New Issue
Block a user