fix(paste): don't move cursor past the end of pasted text in Normal mode

This commit is contained in:
zeertzjq
2022-03-06 06:56:24 +08:00
parent 9b1e1fbc9f
commit 2601e0873f
3 changed files with 61 additions and 17 deletions

View File

@@ -665,6 +665,43 @@ describe('API', function()
feed('u') -- Undo.
expect(expected1)
end)
it('stream: Insert mode', function()
feed('i')
nvim('paste', 'aaaaaa', false, 1)
nvim('paste', 'bbbbbb', false, 2)
nvim('paste', 'cccccc', false, 2)
nvim('paste', 'dddddd', false, 3)
expect('aaaaaabbbbbbccccccdddddd')
end)
it('stream: Normal mode on empty line', function()
nvim('paste', 'aaaaaa', false, 1)
nvim('paste', 'bbbbbb', false, 2)
nvim('paste', 'cccccc', false, 2)
nvim('paste', 'dddddd', false, 3)
expect('aaaaaabbbbbbccccccdddddd')
feed('u')
expect('')
end)
it('stream: Normal mode not at the end of a line', function()
feed('i||<Esc>0')
nvim('paste', 'aaaaaa', false, 1)
nvim('paste', 'bbbbbb', false, 2)
nvim('paste', 'cccccc', false, 2)
nvim('paste', 'dddddd', false, 3)
expect('|aaaaaabbbbbbccccccdddddd|')
feed('u')
expect('||')
end)
it('stream: Normal mode at the end of a line', function()
feed('i||<Esc>')
nvim('paste', 'aaaaaa', false, 1)
nvim('paste', 'bbbbbb', false, 2)
nvim('paste', 'cccccc', false, 2)
nvim('paste', 'dddddd', false, 3)
expect('||aaaaaabbbbbbccccccdddddd')
feed('u')
expect('||')
end)
it('non-streaming', function()
-- With final "\n".
nvim('paste', 'line 1\nline 2\nline 3\n', true, -1)