mirror of
https://github.com/neovim/neovim.git
synced 2025-12-28 00:54:49 +00:00
vim-patch:9.1.0207: No autocommand when writing session file (#28048)
Problem: No autocommand when writing session file
Solution: Add SessionWritePost autocommand
(Colin Kennedy)
fixes: vim/vim#14242
closes: vim/vim#14288
e5f2280381
Co-authored-by: Colin Kennedy <colinvfx@gmail.com>
This commit is contained in:
@@ -3901,4 +3901,60 @@ func Test_autocmd_creates_new_buffer_on_bufleave()
|
||||
bw c.txt
|
||||
endfunc
|
||||
|
||||
" Ensure `expected` was just recently written as a Vim session
|
||||
func s:assert_session_path(expected)
|
||||
call assert_equal(a:expected, v:this_session)
|
||||
endfunc
|
||||
|
||||
" Check for `expected` after a session is written to-disk.
|
||||
func s:watch_for_session_path(expected)
|
||||
execute 'autocmd SessionWritePost * ++once execute "call s:assert_session_path(\"'
|
||||
\ . a:expected
|
||||
\ . '\")"'
|
||||
endfunc
|
||||
|
||||
" Ensure v:this_session gets the full session path, if explicitly stated
|
||||
func Test_explicit_session_absolute_path()
|
||||
%bwipeout!
|
||||
|
||||
let directory = getcwd()
|
||||
|
||||
let v:this_session = ""
|
||||
let name = "some_file.vim"
|
||||
let expected = fnamemodify(name, ":p")
|
||||
call s:watch_for_session_path(expected)
|
||||
execute "mksession! " .. expected
|
||||
|
||||
call delete(expected)
|
||||
endfunc
|
||||
|
||||
" Ensure v:this_session gets the full session path, if explicitly stated
|
||||
func Test_explicit_session_relative_path()
|
||||
%bwipeout!
|
||||
|
||||
let directory = getcwd()
|
||||
|
||||
let v:this_session = ""
|
||||
let name = "some_file.vim"
|
||||
let expected = fnamemodify(name, ":p")
|
||||
call s:watch_for_session_path(expected)
|
||||
execute "mksession! " .. name
|
||||
|
||||
call delete(expected)
|
||||
endfunc
|
||||
|
||||
" Ensure v:this_session gets the full session path, if not specified
|
||||
func Test_implicit_session()
|
||||
%bwipeout!
|
||||
|
||||
let directory = getcwd()
|
||||
|
||||
let v:this_session = ""
|
||||
let expected = fnamemodify("Session.vim", ":p")
|
||||
call s:watch_for_session_path(expected)
|
||||
mksession!
|
||||
|
||||
call delete(expected)
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
Reference in New Issue
Block a user