fix(clipboard): correct blockwise register width computation (#35038)

This commit is contained in:
zeertzjq
2025-07-23 10:46:15 +08:00
committed by GitHub
parent 4fe51dfdae
commit 95dfb063da
3 changed files with 35 additions and 11 deletions

View File

@@ -1573,6 +1573,17 @@ describe('API', function()
eq("Invalid 'type': 'bx'", pcall_err(api.nvim_put, { 'xxx', 'yyy' }, 'bx', false, true))
eq("Invalid 'type': 'b3x'", pcall_err(api.nvim_put, { 'xxx', 'yyy' }, 'b3x', false, true))
end)
it('computes block width correctly when not specified #35034', function()
api.nvim_put({ 'line 1', 'line 2', 'line 3' }, 'l', false, false)
-- block width should be 4
api.nvim_put({ 'あい', 'xxx', 'xx' }, 'b', false, false)
expect([[
あいline 1
xxx line 2
xx line 3
]])
end)
end)
describe('nvim_strwidth', function()

View File

@@ -537,7 +537,7 @@ describe('clipboard (with fake clipboard.vim)', function()
eq('textstar', api.nvim_get_current_line())
end)
it('Block paste works correctly', function()
it('block paste works correctly', function()
insert([[
aabbcc
ddeeff
@@ -550,6 +550,20 @@ describe('clipboard (with fake clipboard.vim)', function()
ddeeddeeff
]])
end)
it('block paste computes block width correctly #35034', function()
insert('あいうえお')
feed('0<C-V>ly')
feed('P')
expect('あいあいうえお')
feed('A\nxxx\nxx<Esc>')
feed('0<C-V>kkly')
feed('P')
expect([[
あいあいあいうえお
xxx xxx
xx xx]])
end)
end)
describe('clipboard=unnamedplus', function()