Fix python setup: Report errors.

No error indication was being given if something went wrong while
setting up python.
This commit is contained in:
Eliseo Martínez
2014-10-29 21:39:07 +01:00
committed by Thiago de Arruda
parent 4b0f8f2a4d
commit 3fb5cdcb3f

View File

@@ -4,6 +4,14 @@ if exists("did_python_setup") || &cp
endif endif
let did_python_setup = 1 let did_python_setup = 1
" Prefix for naming things and displaying output.
let s:plugin_name = 'Python setup'
function! s:ShowError(message)
echohl ErrorMsg
echomsg s:plugin_name . ': ' . a:message . '.'
echohl None
endfunction
let s:get_version = let s:get_version =
\ ' -c "import sys; sys.stdout.write(str(sys.version_info[0]) + '. \ ' -c "import sys; sys.stdout.write(str(sys.version_info[0]) + '.
@@ -24,6 +32,7 @@ elseif executable('python2')
" In some distros, python3 is the default python " In some distros, python3 is the default python
let s:python_interpreter = 'python2' let s:python_interpreter = 'python2'
else else
call s:ShowError('No python interpreter found')
finish finish
endif endif
@@ -32,6 +41,7 @@ endif
let s:import_result = system(s:python_interpreter . let s:import_result = system(s:python_interpreter .
\ ' -c "import neovim, sys; sys.stdout.write(\"ok\")"') \ ' -c "import neovim, sys; sys.stdout.write(\"ok\")"')
if s:import_result != 'ok' if s:import_result != 'ok'
call s:ShowError('No neovim module found')
finish finish
endif endif
@@ -41,6 +51,6 @@ let s:pyhost_id = rpcstart(s:python_interpreter,
" to block until all providers have been registered(or else some plugins loaded " to block until all providers have been registered(or else some plugins loaded
" by the user's vimrc would not get has('python') == 1 " by the user's vimrc would not get has('python') == 1
if rpcrequest(s:pyhost_id, 'python_eval', '"o"+"k"') != 'ok' || !has('python') if rpcrequest(s:pyhost_id, 'python_eval', '"o"+"k"') != 'ok' || !has('python')
" Something went wrong call s:ShowError('Something went wrong')
call rpcstop(s:pyhost_id) call rpcstop(s:pyhost_id)
endif endif