test_omnifunc_completion.vader
1 Before: 2 unlet! b:ale_completion_info 3 unlet! b:ale_completion_result 4 5 let b:lsp_started = 0 6 7 runtime autoload/ale/lsp_linter.vim 8 9 function! ale#lsp_linter#StartLSP(buffer, linter, Callback) abort 10 return b:lsp_started 11 endfunction 12 13 function! SetCompletionResult(...) abort 14 let b:ale_completion_result = ['foo'] 15 endfunction 16 17 function! SetCompletionResponse(...) abort 18 let b:ale_completion_result = ['foo'] 19 endfunction 20 21 After: 22 unlet! b:ale_completion_info 23 unlet! b:ale_completion_result 24 unlet! b:lsp_started 25 26 delfunction SetCompletionResult 27 delfunction SetCompletionResponse 28 29 runtime autoload/ale/lsp_linter.vim 30 31 call ale#linter#Reset() 32 33 Given typescript(): 34 let abc = y. 35 let foo = ab 36 let foo = (ab) 37 38 Execute(-3 should be returned when completion results cannot be requested): 39 AssertEqual -3, ale#completion#OmniFunc(1, '') 40 41 Execute(The start position should be returned when results can be requested): 42 let b:lsp_started = 1 43 call setpos('.', [bufnr(''), 3, 14, 0]) 44 45 AssertEqual 11, ale#completion#OmniFunc(1, '') 46 47 Execute(The omnifunc function should return async results): 48 " Neovim struggles at running these tests. 49 if !has('nvim') 50 call timer_start(0, function('SetCompletionResult')) 51 52 AssertEqual ['foo'], ale#completion#OmniFunc(0, '') 53 endif 54 55 Execute(The omnifunc function should parse and return async responses): 56 if !has('nvim') 57 call timer_start(0, function('SetCompletionResponse')) 58 59 AssertEqual ['foo'], ale#completion#OmniFunc(0, '') 60 endif