From ac1615c647da766534759ece8b253e3a6dd543ee Mon Sep 17 00:00:00 2001 From: Ali Aliyev Date: Mon, 17 Aug 2015 08:09:39 +0500 Subject: [PATCH] Smart completion after "from foo": add "import" and complete This adds a new setting `jedi#smart_auto_mappings` (default 1). --- autoload/jedi.vim | 13 ++++++++++++- doc/jedi-vim.txt | 13 +++++++++++++ ftplugin/python/jedi.vim | 4 ++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/autoload/jedi.vim b/autoload/jedi.vim index 0f7413a..affc590 100644 --- a/autoload/jedi.vim +++ b/autoload/jedi.vim @@ -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 and complete + if search('\import \\\=jedi#complete_opened(".a:is_popup_on_dot.")\" + endif + return "\" +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) diff --git a/doc/jedi-vim.txt b/doc/jedi-vim.txt index 21d70f6..be17a35 100644 --- a/doc/jedi-vim.txt +++ b/doc/jedi-vim.txt @@ -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` 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* diff --git a/ftplugin/python/jedi.vim b/ftplugin/python/jedi.vim index bd1de9d..4cc811a 100644 --- a/ftplugin/python/jedi.vim +++ b/ftplugin/python/jedi.vim @@ -37,6 +37,10 @@ if g:jedi#auto_initialization inoremap . .=jedi#complete_string(1) endif + if g:jedi#smart_auto_mappings == 1 + inoremap 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 if pumvisible() == 0|pclose|endif