mirror of
https://github.com/neovim/neovim.git
synced 2026-03-03 23:58:27 +00:00
Problem: Not so easy to interrupt a script programatically.
Solution: Add the interrupt() function. (Yasuhiro Matsumoto, closes vim/vim#2834)
67a2deb9cb
28 lines
576 B
VimL
28 lines
576 B
VimL
" Test behavior of interrupt()
|
|
|
|
let s:bufwritepre_called = 0
|
|
let s:bufwritepost_called = 0
|
|
|
|
func s:bufwritepre()
|
|
let s:bufwritepre_called = 1
|
|
call interrupt()
|
|
endfunction
|
|
|
|
func s:bufwritepost()
|
|
let s:bufwritepost_called = 1
|
|
endfunction
|
|
|
|
func Test_interrupt()
|
|
new Xfile
|
|
let n = 0
|
|
try
|
|
au BufWritePre Xfile call s:bufwritepre()
|
|
au BufWritePost Xfile call s:bufwritepost()
|
|
w!
|
|
catch /^Vim:Interrupt$/
|
|
endtry
|
|
call assert_equal(1, s:bufwritepre_called)
|
|
call assert_equal(0, s:bufwritepost_called)
|
|
call assert_equal(0, filereadable('Xfile'))
|
|
endfunc
|