fix(grid): handle clearing half a double-width char (#27023)

This commit is contained in:
zeertzjq
2024-01-15 23:45:11 +08:00
committed by GitHub
parent 7ed6966023
commit 9c202b9392
2 changed files with 42 additions and 5 deletions

View File

@@ -22,6 +22,8 @@ describe('multibyte rendering', function()
[3] = { background = Screen.colors.LightMagenta },
[4] = { bold = true },
[5] = { foreground = Screen.colors.Blue },
[6] = { reverse = true, bold = true },
[7] = { reverse = true },
})
end)
@@ -84,7 +86,7 @@ describe('multibyte rendering', function()
{4:-- INSERT --} |
]])
-- check double-with char is temporarily hidden when overlapped
-- check double-width char is temporarily hidden when overlapped
fn.complete(4, { 'xx', 'yy' })
screen:expect([[
ab xx^ |
@@ -104,6 +106,34 @@ describe('multibyte rendering', function()
]])
end)
it('no stray chars when splitting left of window with double-width chars', function()
api.nvim_buf_set_lines(0, 0, -1, true, {
(''):rep(16),
'a' .. (''):rep(16),
'aa' .. (''):rep(16),
'aaa' .. (''):rep(16),
'aaaa' .. (''):rep(16),
})
screen:expect([[
^口口口口口口口口口口口口口口口口 |
a口口口口口口口口口口口口口口口口 |
aa口口口口口口口口口口口口口口口口 |
aaa口口口口口口口口口口口口口口口口 |
aaaa口口口口口口口口口口口口口口口口 |
|
]])
command('20vnew')
screen:expect([[
^ │口口口口口口口口口口口口口口口口 |
{1:~ }│a口口口口口口口口口口口口口口口口 |
{1:~ }│aa口口口口口口口口口口口口口口口口 |
{1:~ }│aaa口口口口口口口口口口口口口口口口 |
{6:[No Name] }{7:[No Name] [+] }|
|
]])
end)
it('0xffff is shown as 4 hex digits', function()
command([[call setline(1, "\uFFFF!!!")]])
feed('$')