Mercurial > vim
diff src/testdir/test_timers.vim @ 27275:841145bb9885 v8.2.4166
patch 8.2.4166: undo synced when switching buffer in another window
Commit: https://github.com/vim/vim/commit/e615db06046312e74886fa1ef98feb5a9db2a7c3
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jan 20 21:00:54 2022 +0000
patch 8.2.4166: undo synced when switching buffer in another window
Problem: Undo synced when switching buffer in another window.
Solution: Do not sync undo when not needed. (closes https://github.com/vim/vim/issues/9575)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 20 Jan 2022 22:15:03 +0100 |
parents | d945799b4604 |
children | 0c403f53b372 |
line wrap: on
line diff
--- a/src/testdir/test_timers.vim +++ b/src/testdir/test_timers.vim @@ -484,5 +484,28 @@ func Test_timer_outputting_message() call delete('XTest_timermessage') endfunc +func Test_timer_using_win_execute_undo_sync() + let bufnr1 = bufnr() + new + let g:bufnr2 = bufnr() + let g:winid = win_getid() + exe "buffer " .. bufnr1 + wincmd w + call setline(1, ['test']) + autocmd InsertEnter * call timer_start(100, { -> win_execute(g:winid, 'buffer ' .. g:bufnr2) }) + call timer_start(200, { -> feedkeys("\<CR>bbbb\<Esc>") }) + call feedkeys("Oaaaa", 'x!t') + " will hang here until the second timer fires + call assert_equal(['aaaa', 'bbbb', 'test'], getline(1, '$')) + undo + call assert_equal(['test'], getline(1, '$')) + + bwipe! + bwipe! + unlet g:winid + unlet g:bufnr2 + au! InsertEnter +endfunc + " vim: shiftwidth=2 sts=2 expandtab