let mapleader = '\' source plugin/jedi.vim source test/_utils.vim describe 'goto simple:' before new set filetype=python put =[ \ 'def a(): pass', \ 'b = a', \ 'c = b', \ ] normal! ggdd normal! G$ Expect line('.') == 3 end after bd! end it 'goto definitions' normal \d Expect line('.') == 2 Expect col('.') == 1 end it 'goto assignments' normal \g Expect line('.') == 2 Expect col('.') == 1 " cursor before `=` means that it stays there. normal \g Expect line('.') == 2 Expect col('.') == 1 " going to the last line changes it. normal! $ normal \g Expect line('.') == 1 Expect col('.') == 5 end end describe 'goto with tabs:' before set filetype=python let g:jedi#use_tabs_not_buffers = 1 end after try | %bwipeout! | catch | endtry end it 'follow import' put = ['import subprocess', 'subprocess'] normal G\g Expect getline('.') == 'import subprocess' Expect line('.') == 2 Expect col('.') == 8 normal G\d Expect CurrentBufferIsModule('subprocess') == 1 Expect line('.') == 1 Expect col('.') == 1 Expect tabpagenr('$') == 2 Expect winnr('$') == 1 bwipe Expect tabpagenr('$') == 1 Expect bufname('%') == '' end end describe 'goto with buffers' before set filetype=python let g:jedi#use_tabs_not_buffers = 0 end after try | %bwipeout! | catch | endtry set nohidden end it 'no new tabs' put = ['import os'] normal G$ call jedi#goto_assignments() python3 jedi_vim.goto() Expect CurrentBufferIsModule('os') == 0 " Without hidden, it's not possible to open a new buffer, when the old " one is not saved. set hidden call jedi#goto_assignments() Expect CurrentBufferIsModule('os') == 1 Expect winnr('$') == 1 Expect tabpagenr('$') == 1 Expect line('.') == 1 Expect col('.') == 1 end end describe 'goto with splits' before enew! set filetype=python let g:jedi#use_splits_not_buffers = 'left' end after try | %bwipeout! | catch | endtry end it 'follow import' put = ['import subprocess', 'subprocess'] normal G\g Expect getline('.') == 'import subprocess' Expect line('.') == 2 Expect col('.') == 8 normal G\d Expect CurrentBufferIsModule('subprocess') == 1 Expect line('.') == 1 Expect col('.') == 1 Expect winnr('$') == 2 wincmd l Expect bufname('%') == '' end end describe 'goto wildignore' before enew! set filetype=python set wildignore=*,with\ spaces,*.pyc set hidden let g:jedi#use_tag_stack = 1 let g:jedi#use_tabs_not_buffers = 0 " Need to use splits for code coverage in new_buffer() let g:jedi#use_splits_not_buffers = 1 put = ['from subprocess import Popen', 'Popen'] Expect CurrentBufferIsModule('subprocess') == 0 normal G end after try | %bwipeout! | catch | endtry set wildignore&vim end it 'restores wildignore' let before = &wildignore call jedi#goto() Expect getline('.') =~ 'Popen' Expect &wildignore == before end it 'not using tagstack' let g:jedi#use_tag_stack = 0 call jedi#goto() Expect CurrentBufferIsModule('subprocess') == 1 Expect getline('.') =~ 'Popen' end end " vim: et:ts=4:sw=4