completion.test.vim 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. function! SetUp()
  2. let g:ycm_use_clangd = 1
  3. let g:ycm_confirm_extra_conf = 0
  4. let g:ycm_auto_trigger = 1
  5. let g:ycm_keep_logfiles = 1
  6. let g:ycm_log_level = 'DEBUG'
  7. call youcompleteme#test#setup#SetUp()
  8. endfunction
  9. function! TearDown()
  10. call youcompleteme#test#setup#CleanUp()
  11. endfunction
  12. function! Test_Compl_After_Trigger()
  13. call youcompleteme#test#setup#OpenFile(
  14. \ '/third_party/ycmd/ycmd/tests/clangd/testdata/basic.cpp' )
  15. call setpos( '.', [ 0, 11, 6 ] )
  16. " Required to trigger TextChangedI
  17. " https://github.com/vim/vim/issues/4665#event-2480928194
  18. call test_override( 'char_avail', 1 )
  19. " Must do the checks in a timer callback because we need to stay in insert
  20. " mode until done.
  21. function! Check( id ) closure
  22. call WaitForAssert( {->
  23. \ assert_true( pyxeval( 'ycm_state.GetCurrentCompletionRequest() is not None' ) )
  24. \ } )
  25. call WaitForAssert( {->
  26. \ assert_true( pyxeval( 'ycm_state.CompletionRequestReady()' ) )
  27. \ } )
  28. redraw
  29. call WaitForAssert( {->
  30. \ assert_true( pumvisible(), 'pumvisible()' )
  31. \ }, 10000 )
  32. call feedkeys( "\<ESC>" )
  33. endfunction
  34. call timer_start( 500, funcref( 'Check' ) )
  35. call feedkeys( 'cl.', 'ntx!' )
  36. " Checks run in insert mode, then exit insert mode.
  37. call assert_false( pumvisible(), 'pumvisible()' )
  38. call test_override( 'ALL', 0 )
  39. %bwipeout!
  40. endfunctio