From 719e9fb9a6955f8fe69846a55cd760c9c290eb56 Mon Sep 17 00:00:00 2001 From: David Halter Date: Sat, 1 Sep 2012 00:02:23 +0200 Subject: [PATCH] automatically start completion on typing a dot --- jedi.vim | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/jedi.vim b/jedi.vim index 8378148..0b0f722 100644 --- a/jedi.vim +++ b/jedi.vim @@ -174,6 +174,26 @@ function! jedi#goto_window_on_enter() echohl WarningMsg | echo "Builtin module cannot be opened." | echohl None endif endfunction + +function! jedi#syn_stack() + if !exists("*synstack") + return [] + endif + return map(synstack(line('.'), col('.') - 1), 'synIDattr(v:val, "name")') +endfunc + +function! jedi#do_popup_on_dot() + let highlight_groups = jedi#syn_stack() + for a in highlight_groups + for b in ['pythonString', 'pythonComment'] + if a == b + return 0 + endif + endfor + endfor + return 1 +endfunc + " ------------------------------------------------------------------------ " Initialization of jedi-vim " ------------------------------------------------------------------------ @@ -188,6 +208,9 @@ endif if !exists("g:jedi#goto_command") let g:jedi#goto_command = "g" endif +if !exists("g:jedi#popup_on_dot") + let g:jedi#popup_on_dot = 1 +endif if g:jedi#auto_initialization autocmd FileType python set omnifunc=jedi#complete @@ -197,6 +220,10 @@ if g:jedi#auto_initialization execute "map ".g:jedi#goto_command." :call jedi#goto()" end +if g:jedi#popup_on_dot + autocmd FileType python imap . .=jedi#do_popup_on_dot() ? "\C-X>\C-O>" : "" +end + let s:current_file=expand("") python << PYTHONEOF