diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-09-24 19:48:40 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 11:48:40 +0000 |
commit | 052875b9dc3de3283844a30dce9646f26982542d (patch) | |
tree | 15dd7b775c42ab3752919c1521d46d5b8bb5c2be /test/functional/api/vim_spec.lua | |
parent | 3f6bc34e663c62bc8899dcdc65bf204b2ccfdaec (diff) | |
download | rneovim-052875b9dc3de3283844a30dce9646f26982542d.tar.gz rneovim-052875b9dc3de3283844a30dce9646f26982542d.tar.bz2 rneovim-052875b9dc3de3283844a30dce9646f26982542d.zip |
fix(paste): only record a paste when it's from RPC (#30491)
Problem: When using nvim_paste in a mapping during a macro recording,
both the mapping and the paste are recorded, causing the paste
to be performed twice when replaying the macro.
Solution: Only record a paste when it is from RPC.
Unfortunately this means there is no way for a script to make a recorded
paste. A way to enable that can be discussed later if there is need.
Diffstat (limited to 'test/functional/api/vim_spec.lua')
-rw-r--r-- | test/functional/api/vim_spec.lua | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua index 1b34945f13..af4d4854f5 100644 --- a/test/functional/api/vim_spec.lua +++ b/test/functional/api/vim_spec.lua @@ -1358,6 +1358,13 @@ describe('API', function() test_paste_repeat_visual_select(true) end) end) + it('in a mapping recorded in a macro', function() + command([[nnoremap <F2> <Cmd>call nvim_paste('foo', v:false, -1)<CR>]]) + feed('qr<F2>$q') + expect('foo') + feed('@r') -- repeating a macro containing the mapping should only paste once + expect('foofoo') + end) local function test_paste_cancel_error(is_error) before_each(function() exec_lua(([[ |