aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/lua/vim.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-09-01 19:12:13 -0700
committerGitHub <noreply@github.com>2019-09-01 19:12:13 -0700
commitb10d703213da5699a176c7791a51a322f248dbd2 (patch)
tree72a8132da5e844284b9bc9e2947e9518e01f7395 /src/nvim/lua/vim.lua
parent938be1e0ab1c3772f329f39225e651deb1cd6aca (diff)
parent8560bafc6cf7cfd301c1389a9e2562aeec592294 (diff)
downloadrneovim-b10d703213da5699a176c7791a51a322f248dbd2.tar.gz
rneovim-b10d703213da5699a176c7791a51a322f248dbd2.tar.bz2
rneovim-b10d703213da5699a176c7791a51a322f248dbd2.zip
Merge #10896 'paste: one undo-block'
Diffstat (limited to 'src/nvim/lua/vim.lua')
-rw-r--r--src/nvim/lua/vim.lua12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua
index fd34b8545d..99299c6073 100644
--- a/src/nvim/lua/vim.lua
+++ b/src/nvim/lua/vim.lua
@@ -175,13 +175,15 @@ end
--@returns false if client should cancel the paste.
local function paste(lines, phase) end -- luacheck: no unused
paste = (function()
- local tdots, tredraw, tick, got_line1 = 0, 0, 0, false
+ local tdots, tick, got_line1 = 0, 0, false
return function(lines, phase)
local call = vim.api.nvim_call_function
local now = vim.loop.now()
local mode = call('mode', {}):sub(1,1)
if phase < 2 then -- Reset flags.
- tdots, tredraw, tick, got_line1 = now, now, 0, false
+ tdots, tick, got_line1 = now, 0, false
+ elseif mode ~= 'c' then
+ vim.api.nvim_command('undojoin')
end
if mode == 'c' and not got_line1 then -- cmdline-mode: paste only 1 line.
got_line1 = (#lines > 1)
@@ -193,11 +195,6 @@ paste = (function()
else
vim.api.nvim_put(lines, 'c', true, true)
end
- if (now - tredraw >= 1000) or phase == -1 or phase > 2 then
- tredraw = now
- vim.api.nvim_command('redraw')
- vim.api.nvim_command('redrawstatus')
- end
if phase ~= -1 and (now - tdots >= 100) then
local dots = ('.'):rep(tick % 4)
tdots = now
@@ -207,6 +204,7 @@ paste = (function()
vim.api.nvim_command(('echo "%s"'):format(dots))
end
if phase == -1 or phase == 3 then
+ vim.api.nvim_command('redraw')
vim.api.nvim_command('echo ""')
vim.api.nvim_set_option('paste', false)
end