diff options
author | Evgeni Chasnovski <evgeni.chasnovski@gmail.com> | 2022-01-29 16:08:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-29 14:08:44 +0000 |
commit | 5e1c487d9915f84c95222f05ceeec66572fb604e (patch) | |
tree | 5feb2c9c0c7270c5f6890d729d504f638a84bb2d /src/nvim/testdir | |
parent | ed0808412cc5e8b53e4d1d1ad466c4f710a03e66 (diff) | |
download | rneovim-5e1c487d9915f84c95222f05ceeec66572fb604e.tar.gz rneovim-5e1c487d9915f84c95222f05ceeec66572fb604e.tar.bz2 rneovim-5e1c487d9915f84c95222f05ceeec66572fb604e.zip |
vim-patch:8.2.4090: after restoring a session buffer order can be quite different (#17112)
Problem: After restoring a session buffer order can be quite different.
Solution: Create buffers first. (Evgeni Chasnovski, closes vim/vim#9520)
https://github.com/vim/vim/commit/26ebf1f036517ebeacf571c333a83cca7e13bbe2
---------------
As in Vim, this basically reverts 8.1.0829 providing different solution
(see vim/vim#9520).
Regarding Neovim, this basically reverts changes from #15062. Test about
restoring same terminals was a bit too restrictive with using actual
buffer ids, which changed with this patch (now they should be in the
same order as at `mksession` call), so I tweaked it.
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r-- | src/nvim/testdir/test_mksession.vim | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_mksession.vim b/src/nvim/testdir/test_mksession.vim index a87691abf9..a8e50af510 100644 --- a/src/nvim/testdir/test_mksession.vim +++ b/src/nvim/testdir/test_mksession.vim @@ -309,6 +309,31 @@ func Test_mksession_buffer_count() set nohidden endfunc +func Test_mksession_buffer_order() + %bwipe! + e Xfoo | e Xbar | e Xbaz | e Xqux + bufdo write + mksession! Xtest_mks.out + + " Verify that loading the session preserves order of buffers + %bwipe! + source Xtest_mks.out + + let s:buf_info = getbufinfo() + call assert_true(s:buf_info[0]['name'] =~# 'Xfoo$') + call assert_true(s:buf_info[1]['name'] =~# 'Xbar$') + call assert_true(s:buf_info[2]['name'] =~# 'Xbaz$') + call assert_true(s:buf_info[3]['name'] =~# 'Xqux$') + + " Clean up. + call delete('Xfoo') + call delete('Xbar') + call delete('Xbaz') + call delete('Xqux') + call delete('Xtest_mks.out') + %bwipe! +endfunc + if has('extra_search') func Test_mksession_hlsearch() |