Smart completion after "from foo": add "import" and complete

This adds a new setting `jedi#smart_auto_mappings` (default 1).
This commit is contained in:
Ali Aliyev
2015-08-17 08:09:39 +05:00
committed by Daniel Hahler
parent d3484afe20
commit ac1615c647
3 changed files with 29 additions and 1 deletions

View File

@@ -32,7 +32,8 @@ let s:default_settings = {
\ 'popup_select_first': 1,
\ 'quickfix_window_height': 10,
\ 'completions_enabled': 1,
\ 'force_py_version': "'auto'"
\ 'force_py_version': "'auto'",
\ 'smart_auto_mappings': 1
\ }
for [key, val] in items(s:deprecations)
@@ -422,6 +423,16 @@ function! jedi#complete_opened(is_popup_on_dot)
endfunction
function! jedi#smart_auto_mappings(is_popup_on_dot)
" Auto put import statement after from module.name<space> and complete
if search('\<from\s\+[A-Za-z0-9._]\+\s*\%#\s*$', 'bcn', line('.'))
" Enter character and start completion.
return "\<space>import \<C-x>\<C-o>\<C-r>=jedi#complete_opened(".a:is_popup_on_dot.")\<CR>"
endif
return "\<space>"
endfunction
"PythonJedi jedi_vim.jedi.set_debug_function(jedi_vim.print_to_stdout, speed=True, warnings=False, notices=False)
"PythonJedi jedi_vim.jedi.set_debug_function(jedi_vim.print_to_stdout)

View File

@@ -41,6 +41,7 @@ Contents *jedi-vim-contents*
6.9. completions_enabled |g:jedi#completions_enabled|
6.10. use_splits_not_buffers |g:jedi#use_splits_not_buffers|
6.11. force_py_version |g:jedi#force_py_version|
6.12. smart_auto_mappings |g:jedi#smart_auto_mappings|
7. Testing |jedi-vim-testing|
8. Contributing |jedi-vim-contributing|
9. License |jedi-vim-license|
@@ -481,6 +482,18 @@ Function: `jedi#force_py_version(py_version)`
Options: 2 or 3
Default: "auto" (will use sys.version_info from "python" in your $PATH)
------------------------------------------------------------------------------
6.12. `g:jedi#smart_auto_mappings` *g:jedi#smart_auto_mappings*
When you start typing `from module.name<space>` jedi-vim automatically
adds the "import" statement and displays the autocomplete popup.
This option can be disabled in the .vimrc:
`let g:jedi#smart_auto_mappings = 0`
Options: 0 or 1
Default: 1 (enabled by default)
==============================================================================
7. Testing *jedi-vim-testing*

View File

@@ -37,6 +37,10 @@ if g:jedi#auto_initialization
inoremap <silent> <buffer> . .<C-R>=jedi#complete_string(1)<CR>
endif
if g:jedi#smart_auto_mappings == 1
inoremap <buffer> <expr> <Space> jedi#smart_auto_mappings(g:jedi#popup_on_dot)
end
if g:jedi#auto_close_doc
" close preview if its still open after insert
autocmd InsertLeave <buffer> if pumvisible() == 0|pclose|endif