func! yarp#pyx#init() dict if self.type == 'py' let l:Detect = function('s:pyexe') else let l:Detect = function('s:py3exe') endif let exe = call(l:Detect, [], self) if get(s:, 'script', '') == '' let s:script = globpath(&rtp,'pythonx/yarp.py',1) endif let self.cmd = [exe, \ '-u', \ s:script, \ yarp#core#serveraddr(), \ self.id, \ self.module] call self.jobstart() endfunc func! s:pyexe() dict if get(g:, '_yarp_py', '') return g:_yarp_py endif let g:_yarp_py = get(g:, 'python_host_prog', '') if g:_yarp_py == '' && has('nvim') && has('python') " heavy weight " but better support for python detection python import sys let g:_yarp_py = pyeval('sys.executable') endif if g:_yarp_py == '' let g:_yarp_py = 'python2' endif return g:_yarp_py endfunc func! s:py3exe() dict if get(g:, '_yarp_py3', '') return g:_yarp_py3 endif let g:_yarp_py3 = get(g:, 'python3_host_prog', '') if g:_yarp_py3 == '' && has('nvim') && has('python3') " heavy weight " but better support for python detection python3 import sys let g:_yarp_py3 = py3eval('sys.executable') endif if g:_yarp_py3 == '' let g:_yarp_py3 = 'python3' endif if exepath(g:_yarp_py3) == '' call self.error( \ "Python3 executable [" . \ g:_yarp_py3 . \ "] not found.") if has('vim_starting') call self.error("") endif call self.error("###### Please configure g:python3_host_prog properly ######") if has('vim_starting') call self.error("") endif endif return g:_yarp_py3 endfunc