dotfiles/vim/plugins/nvim-yarp/autoload/yarp/pyx.vim
2018-04-05 13:06:54 +02:00

71 lines
1.8 KiB
VimL

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