mirror of
https://github.com/davidhalter/jedi-vim.git
synced 2025-12-06 10:54:22 +08:00
119 lines
3.0 KiB
VimL
119 lines
3.0 KiB
VimL
let g:jedi#completions_command = 'X'
|
|
source plugin/jedi.vim
|
|
|
|
describe 'completions'
|
|
before
|
|
new
|
|
set filetype=python
|
|
end
|
|
|
|
after
|
|
" default
|
|
let g:jedi#popup_select_first = 1
|
|
bd!
|
|
end
|
|
|
|
it 'longest in completeopt'
|
|
" This gets set up with Vim only on VimEnter.
|
|
if has('nvim')
|
|
Expect stridx(&completeopt, 'longest') > -1
|
|
else
|
|
Expect stridx(&completeopt, 'longest') == -1
|
|
doautocmd VimEnter
|
|
Expect stridx(&completeopt, 'longest') > -1
|
|
endif
|
|
|
|
" Do not use it for following tests.
|
|
set completeopt-=longest
|
|
end
|
|
|
|
it 'no smart import by default'
|
|
exec "normal ifrom os "
|
|
Expect getline('.') == 'from os '
|
|
end
|
|
|
|
it 'import'
|
|
" X is the completion command
|
|
normal oimporX
|
|
Expect getline('.') == 'import'
|
|
normal a subproX
|
|
Expect getline('.') == 'import subprocess'
|
|
end
|
|
|
|
it 'exception'
|
|
normal oIndentationErrX
|
|
Expect getline('.') == 'IndentationError'
|
|
|
|
" Do not remap keys (".") here, otherwise this triggers completion in
|
|
" Neovim already.
|
|
normal! a().filena
|
|
|
|
normal aX
|
|
Expect getline('.') == 'IndentationError().filename'
|
|
end
|
|
|
|
it 'cycling through entries popup_select_first=0'
|
|
set completeopt+=longest
|
|
let g:jedi#popup_select_first = 0
|
|
execute "normal oraise impX\<C-n>"
|
|
|
|
Expect getline('.') == 'raise ImportError'
|
|
set completeopt-=longest
|
|
end
|
|
|
|
it 'cycling through entries popup_select_first=1'
|
|
execute "normal oraise impX\<C-n>"
|
|
Expect getline('.') == 'raise ImportWarning'
|
|
end
|
|
|
|
it 'cycling through entries popup_select_first=1 and longest'
|
|
set completeopt+=longest
|
|
execute "normal oraise impX"
|
|
Expect getline('.') == 'raise Import'
|
|
|
|
" With Neovim pumvisible() is 1 in jedi#complete_opened, which then
|
|
" triggers the <Down>. This is not the case with Vim.
|
|
if has('nvim')
|
|
execute "normal oraise impX\<C-n>"
|
|
Expect getline('.') == 'raise ImportWarning'
|
|
|
|
execute "normal oraise impX\<C-n>\<C-n>"
|
|
Expect getline('.') == 'raise imp'
|
|
else
|
|
execute "normal oraise impX\<C-n>"
|
|
Expect getline('.') == 'raise ImportError'
|
|
|
|
execute "normal oraise impX\<C-n>\<C-n>"
|
|
Expect getline('.') == 'raise ImportWarning'
|
|
endif
|
|
set completeopt-=longest
|
|
end
|
|
end
|
|
|
|
describe 'smart completions'
|
|
before
|
|
new
|
|
let g:jedi#smart_auto_mappings = 1
|
|
set filetype=python
|
|
end
|
|
|
|
after
|
|
" default
|
|
let g:jedi#smart_auto_mappings = 0
|
|
bd!
|
|
end
|
|
|
|
it 'smart import'
|
|
exec "normal ifrom os "
|
|
Expect getline('.') == 'from os import '
|
|
end
|
|
|
|
it 'no smart import after space'
|
|
exec "normal! ifrom os "
|
|
exec "normal a "
|
|
Expect getline('.') == 'from os '
|
|
end
|
|
end
|
|
|
|
" vim: et:ts=4:sw=4
|