TUI/paste: always flush on paste mode-change

Flush input before entering, not only when leaving, paste mode. Else
there could be pending input which will erroneously be sent to the paste
handler.
This commit is contained in:
Justin M. Keyes
2019-08-19 00:18:41 +02:00
parent 6d277f43a2
commit 68ea9a7c8a
3 changed files with 21 additions and 24 deletions

View File

@@ -96,17 +96,19 @@ end
-- Default paste function.
local function _paste(data)
-- local eof = (data == {''})
local curline = vim.api.nvim_call_function('line', {'.'})
local curline = vim.api.nvim_call_function('line', {'.'}) - 1
vim.api.nvim_buf_set_lines(
0,
curline,
curline,
false,
data)
vim.api.nvim_call_function('cursor', {curline + #data, 1})
vim.api.nvim_call_function(
'cursor',
{curline + #data, 9999999})
-- TODO: do not redraw (slow!) until paste is finished.
-- if eof then
-- vim.api.nvim_command('redraw')
-- end
vim.api.nvim_command('redraw')
return 0
end