forked from aniani/vim
patch 8.2.5022: 'completefunc'/'omnifunc' error does not end completion
Problem: 'completefunc'/'omnifunc' error does not end completion. Solution: Check if there was an error or exception. (closes #10486, closes #4218)
This commit is contained in:
@@ -140,6 +140,30 @@ func Test_omni_dash()
|
||||
set omnifunc=
|
||||
endfunc
|
||||
|
||||
func Test_omni_throw()
|
||||
let g:CallCount = 0
|
||||
func Omni(findstart, base)
|
||||
let g:CallCount += 1
|
||||
if a:findstart
|
||||
throw "he he he"
|
||||
endif
|
||||
endfunc
|
||||
set omnifunc=Omni
|
||||
new
|
||||
try
|
||||
exe "normal ifoo\<C-x>\<C-o>"
|
||||
call assert_false(v:true, 'command should have failed')
|
||||
catch
|
||||
call assert_exception('he he he')
|
||||
call assert_equal(1, g:CallCount)
|
||||
endtry
|
||||
|
||||
bwipe!
|
||||
delfunc Omni
|
||||
unlet g:CallCount
|
||||
set omnifunc=
|
||||
endfunc
|
||||
|
||||
func Test_omni_autoload()
|
||||
let save_rtp = &rtp
|
||||
set rtp=Xruntime/some
|
||||
|
||||
Reference in New Issue
Block a user