diff --git a/autoload/jedi.vim b/autoload/jedi.vim index 1432dae..ee2f5e1 100644 --- a/autoload/jedi.vim +++ b/autoload/jedi.vim @@ -126,12 +126,11 @@ function! jedi#init_python() try let s:_init_python = s:init_python() catch - if !exists("g:jedi#squelch_py_warning") - echohl WarningMsg - echom "Error: jedi-vim failed to initialize Python: ".v:exception." (in ".v:throwpoint.")" - echohl None - endif let s:_init_python = 0 + if !exists("g:jedi#squelch_py_warning") + echoerr "Error: jedi-vim failed to initialize Python: " + \ .v:exception." (in ".v:throwpoint.")" + endif endtry endif return s:_init_python @@ -154,11 +153,11 @@ function! jedi#setup_py_version(py_version) try execute cmd_init.' '.s:script_path.'/initialize.py' - execute 'command! -nargs=1 PythonJedi '.cmd_exec.' ' - return 1 catch throw "jedi#setup_py_version: ".v:exception endtry + execute 'command! -nargs=1 PythonJedi '.cmd_exec.' ' + return 1 endfunction @@ -202,12 +201,7 @@ function! jedi#_vim_exceptions(str, is_eval) return l:result endfunction - -if !jedi#init_python() - " Do not define any functions when Python initialization failed. - finish -endif - +call jedi#init_python() " Might throw an error. " ------------------------------------------------------------------------ " functions that call python code diff --git a/initialize.py b/initialize.py index 8ab8ddf..10687ca 100644 --- a/initialize.py +++ b/initialize.py @@ -18,5 +18,10 @@ import traceback # update the sys path to include the jedi_vim script sys.path.insert(0, vim.eval('expand(s:script_path)')) -import jedi_vim -sys.path.pop(1) +try: + import jedi_vim +except Exception as excinfo: + raise Exception('Failed to import jedi_vim: {0}\n{1}'.format( + excinfo, traceback.format_exc())) +finally: + sys.path.pop(1) diff --git a/jedi_vim.py b/jedi_vim.py index 166529a..862ad3a 100644 --- a/jedi_vim.py +++ b/jedi_vim.py @@ -78,12 +78,11 @@ def vim_eval(string): def no_jedi_warning(error=None): - msg = "Please install Jedi if you want to use jedi-vim." + vim.command('echohl WarningMsg') + vim.command('echom "Please install Jedi if you want to use jedi-vim."') if error: - msg = '{0} The error was: {1}'.format(msg, error) - vim.command('echohl WarningMsg' - '| echom "Please install Jedi if you want to use jedi-vim."' - '| echohl None') + vim.command('echom "The error was: {0}"'.format(error)) + vim.command('echohl None') def echo_highlight(msg):