aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-09-08 16:39:06 -0700
committerJustin M. Keyes <justinkz@gmail.com>2019-09-08 16:42:11 -0700
commita9e2bae0eb6942829dbedfc9c422060da020d8e4 (patch)
treea8a8af880cb83f0bfb1da9284226868dcf64372f
parentacd2729573171995e8a66be7e09ba4e2fc5d9c69 (diff)
downloadrneovim-a9e2bae0eb6942829dbedfc9c422060da020d8e4.tar.gz
rneovim-a9e2bae0eb6942829dbedfc9c422060da020d8e4.tar.bz2
rneovim-a9e2bae0eb6942829dbedfc9c422060da020d8e4.zip
paste: insert before cursor always
Inserting "after" the cursor in Normal-mode, for big paste-streams, is not reliable: sometimes the text "after" the cursor ends up in the middle of the pasted text. Maybe the cursor position is not updated? To avoid weird behavior, always paste "before". Maybe nvim_put() or vim.paste() can be fixed more properly later.
-rw-r--r--runtime/doc/provider.txt2
-rw-r--r--src/nvim/lua/vim.lua2
-rw-r--r--test/functional/terminal/tui_spec.lua4
3 files changed, 4 insertions, 4 deletions
diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt
index 0083bb63a4..6fa3377a14 100644
--- a/runtime/doc/provider.txt
+++ b/runtime/doc/provider.txt
@@ -239,7 +239,7 @@ GUIs can paste by calling |nvim_paste()|.
PASTE BEHAVIOR ~
-Paste inserts text after the cursor. Lines break at <NL>, <CR>, and <CR><NL>.
+Paste inserts text before the cursor. Lines break at <NL>, <CR> and <CR><NL>.
When pasting a huge amount of text, screen-updates are throttled and the
message area shows a "..." pulse.
diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua
index cc10118906..010c3b98ee 100644
--- a/src/nvim/lua/vim.lua
+++ b/src/nvim/lua/vim.lua
@@ -192,7 +192,7 @@ paste = (function()
vim.api.nvim_input(line1)
vim.api.nvim_set_option('paste', false)
elseif mode ~= 'c' then
- vim.api.nvim_put(lines, 'c', (mode ~= 'i' and mode ~= 'R'), true)
+ vim.api.nvim_put(lines, 'c', false, true)
end
if phase ~= -1 and (now - tdots >= 100) then
local dots = ('.'):rep(tick % 4)
diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua
index 01e73a2378..2bd114b505 100644
--- a/test/functional/terminal/tui_spec.lua
+++ b/test/functional/terminal/tui_spec.lua
@@ -485,9 +485,9 @@ describe('TUI', function()
feed_data('\n') -- <CR>
screen:expect{grid=[[
foo |
- typed input...line A |
+ typed input..line A |
line B |
- {1: } |
+ {1:.} |
{5:[No Name] [+] }|
|
{3:-- TERMINAL --} |