diff --git a/autoload/vim_block_party.vim b/autoload/vim_block_party.vim index 7d9d083..459de7f 100644 --- a/autoload/vim_block_party.vim +++ b/autoload/vim_block_party.vim @@ -1,10 +1,17 @@ +" Get a Python version to run with (Vim 8.0+ can just use `pythonx`) +if get(g:, 'expander_python_version', '2') == '2' && has('python') + let g:_uspy=":python " +elseif get(g:, 'expander_python_version', '3') == '3' && has('python3') + let g:_uspy=":python3 " +else + echoerr "No matching Python version could be found" +endif + + function! vim_block_party#around_deep() let l:block_party_temp_var = [] -pythonx << EOF -from vim_textobj_block_party import party -party.around_deep('l:block_party_temp_var') -EOF + execute g:_uspy "from vim_textobj_block_party import party;party.around_deep('l:block_party_temp_var')" if l:block_party_temp_var == [] return 0 @@ -17,10 +24,7 @@ endfunction function! vim_block_party#around_deep_two_way() let l:block_party_temp_var = [] -pythonx << EOF -from vim_textobj_block_party import party -party.around_deep('l:block_party_temp_var', two_way=True) -EOF + execute g:_uspy "from vim_textobj_block_party import party;party.around_deep('l:block_party_temp_var', two_way=True)" if l:block_party_temp_var == [] return 0 @@ -33,10 +37,7 @@ endfunction function! vim_block_party#inside_deep() let l:block_party_temp_var = [] -pythonx << EOF -from vim_textobj_block_party import party -party.inside_deep('l:block_party_temp_var') -EOF + execute g:_uspy "from vim_textobj_block_party import party;party.inside_deep('l:block_party_temp_var')" if l:block_party_temp_var == [] return 0 @@ -49,10 +50,7 @@ endfunction function! vim_block_party#around_shallow() let l:block_party_temp_var = [] -pythonx << EOF -from vim_textobj_block_party import party -party.around_shallow('l:block_party_temp_var') -EOF + execute g:_uspy "from vim_textobj_block_party import party;party.around_shallow('l:block_party_temp_var')" if len(l:block_party_temp_var) == 0 return 0 @@ -65,10 +63,7 @@ endfunction function! vim_block_party#around_shallow_two_way() let l:block_party_temp_var = [] -pythonx << EOF -from vim_textobj_block_party import party -party.around_shallow('l:block_party_temp_var', two_way=True) -EOF + execute g:_uspy "from vim_textobj_block_party import party;party.around_shallow('l:block_party_temp_var', two_way=True)" if l:block_party_temp_var == [] return 0 @@ -81,10 +76,7 @@ endfunction function! vim_block_party#inside_shallow() let l:block_party_temp_var = [] -pythonx << EOF -from vim_textobj_block_party import party -party.inside_shallow('l:block_party_temp_var') -EOF + execute g:_uspy "from vim_textobj_block_party import party;party.inside_shallow('l:block_party_temp_var')" if l:block_party_temp_var == [] return 0 diff --git a/ftplugin/python/vim_block_party.vim b/ftplugin/python/vim_block_party.vim index eeffe62..f9d2ec1 100644 --- a/ftplugin/python/vim_block_party.vim +++ b/ftplugin/python/vim_block_party.vim @@ -1,13 +1,25 @@ +if !has('python') && !has('python3') + echoerr "vim-python-function-expander requires Python. Cannot continue loading this plugin" + finish +endif + if get(g:, 'block_party_loaded', '0') == '1' finish endif +" Get a Python version to run with (Vim 8.0+ can just use `pythonx`) +if get(g:, 'expander_python_version', '2') == '2' && has('python') + let g:_uspy=":python " +elseif get(g:, 'expander_python_version', '3') == '3' && has('python3') + let g:_uspy=":python3 " +else + echoerr "No matching Python version could be found" +endif + + function! s:SetupBlockParty() -pythonx << EOF -from vim_textobj_block_party import environment -environment.init() -EOF + execute g:_uspy "from vim_textobj_block_party import environment;environment.init()" endfunction diff --git a/pythonx/vim_textobj_block_party/block_party/party.py b/pythonx/vim_textobj_block_party/block_party/party.py index 392543c..a556243 100644 --- a/pythonx/vim_textobj_block_party/block_party/party.py +++ b/pythonx/vim_textobj_block_party/block_party/party.py @@ -18,9 +18,12 @@ from parso.python import tree import parso except ImportError: - # Use the provided parso library if the user doesn't have it installed. - from .vendors.parso.python import tree - from .vendors import parso + import sys + import os + from . import vendors + sys.path.append(os.path.dirname(vendors.__file__)) + from parso.python import tree + import parso # IMPORT LOCAL LIBRARIES from . import config