diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2014-11-17 10:48:39 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-11-18 14:58:25 -0300 |
commit | 9b8ca92a0125520c9926ea88e88b0cc26823b6ff (patch) | |
tree | 1e16c8cf98ec34cb95290ef1cd623645db63c811 /runtime/autoload/provider/python.vim | |
parent | 4af5cfb51738b6740c03bd43672057202034d2f3 (diff) | |
download | rneovim-9b8ca92a0125520c9926ea88e88b0cc26823b6ff.tar.gz rneovim-9b8ca92a0125520c9926ea88e88b0cc26823b6ff.tar.bz2 rneovim-9b8ca92a0125520c9926ea88e88b0cc26823b6ff.zip |
runtime: Reimplement python/clipboard providers in vimscript
Clipboard is implemented with platform-specific shell commands, and python is
implemented with the external plugin facility (rpc#* functions). The
script_host.py file(legacy python-vim emulation plugin) was moved/adapted from
the python client repository.
Diffstat (limited to 'runtime/autoload/provider/python.vim')
-rw-r--r-- | runtime/autoload/provider/python.vim | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/runtime/autoload/provider/python.vim b/runtime/autoload/provider/python.vim new file mode 100644 index 0000000000..9ca81c35f4 --- /dev/null +++ b/runtime/autoload/provider/python.vim @@ -0,0 +1,28 @@ +" The python provider uses a python host to emulate an environment for running +" python-vim plugins(:h python-vim). See :h nvim-providers for more +" information. +" +" Associating the plugin with the python host is the first step because plugins +" will be passed as command-line arguments +if exists('s:loaded_python_provider') || &cp + finish +endif +let s:loaded_python_provider = 1 +let s:plugin_path = expand('<sfile>:p:h').'/script_host.py' +" The python provider plugin will run in a separate instance of the python +" host. +call rpc#host#RegisterClone('legacy-python-provider', 'python') +call rpc#host#RegisterPlugin('legacy-python-provider', s:plugin_path, []) +" Ensure that we can load the python host before bootstrapping +try + let s:host = rpc#host#Require('legacy-python-provider') +catch + echomsg v:exception + finish +endtry + +let s:rpcrequest = function('rpcrequest') + +function! provider#python#Call(method, args) + return call(s:rpcrequest, insert(insert(a:args, 'python_'.a:method), s:host)) +endfunction |