aboutsummaryrefslogtreecommitdiff
path: root/runtime/autoload/provider/python.vim
diff options
context:
space:
mode:
authorFlorian Walch <florian@fwalch.com>2015-06-09 13:31:02 +0300
committerFlorian Walch <florian@fwalch.com>2015-06-09 13:31:02 +0300
commit6270d431aaeed71e7a8782411f36409ab8e0ee35 (patch)
tree3aa7f3d7c27a5311901b492e1238bcd90c69abdc /runtime/autoload/provider/python.vim
parent232c40b40a56eb30c7a6732368eb631e1e58fc7c (diff)
parente8c68aa7ee64aaa8363b2900ea97a97e7eb8ba4b (diff)
downloadrneovim-6270d431aaeed71e7a8782411f36409ab8e0ee35.tar.gz
rneovim-6270d431aaeed71e7a8782411f36409ab8e0ee35.tar.bz2
rneovim-6270d431aaeed71e7a8782411f36409ab8e0ee35.zip
Merge #2735 'provider: Only call system() once, don't use Python 3 interpreter for +python, improve messages'.
Diffstat (limited to 'runtime/autoload/provider/python.vim')
-rw-r--r--runtime/autoload/provider/python.vim15
1 files changed, 11 insertions, 4 deletions
diff --git a/runtime/autoload/provider/python.vim b/runtime/autoload/provider/python.vim
index 4c43c8a613..d4a509864f 100644
--- a/runtime/autoload/provider/python.vim
+++ b/runtime/autoload/provider/python.vim
@@ -10,10 +10,6 @@ endif
let g:loaded_python_provider = 1
let [s:prog, s:err] = provider#pythonx#Detect(2)
-if s:prog == ''
- " Detection failed
- finish
-endif
function! provider#python#Prog()
return s:prog
@@ -23,6 +19,11 @@ function! provider#python#Error()
return s:err
endfunction
+if s:prog == ''
+ " Detection failed
+ finish
+endif
+
let s:plugin_path = expand('<sfile>:p:h').'/script_host.py'
" The Python provider plugin will run in a separate instance of the Python
@@ -31,6 +32,9 @@ call remote#host#RegisterClone('legacy-python-provider', 'python')
call remote#host#RegisterPlugin('legacy-python-provider', s:plugin_path, [])
function! provider#python#Call(method, args)
+ if s:err != ''
+ return
+ endif
if !exists('s:host')
let s:rpcrequest = function('rpcrequest')
@@ -38,7 +42,10 @@ function! provider#python#Call(method, args)
try
let s:host = remote#host#Require('legacy-python-provider')
catch
+ let s:err = v:exception
+ echohl WarningMsg
echomsg v:exception
+ echohl None
finish
endtry
endif