diff options
| author | Nick Hynes <nhynes@mit.edu> | 2015-06-24 19:18:44 -0400 | 
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2015-06-25 19:01:38 -0400 | 
| commit | 105b8f10707580dc9f20a52c71de77d57143f64e (patch) | |
| tree | c8e67289c41702df0e157e8124c1af07ca3c0fb0 /runtime | |
| parent | 34a5efd7a9a5c093207ab9d235719de546ff7479 (diff) | |
| download | rneovim-105b8f10707580dc9f20a52c71de77d57143f64e.tar.gz rneovim-105b8f10707580dc9f20a52c71de77d57143f64e.tar.bz2 rneovim-105b8f10707580dc9f20a52c71de77d57143f64e.zip | |
rplugin: allow users to register hosts #2896
Diffstat (limited to 'runtime')
| -rw-r--r-- | runtime/autoload/remote/host.vim | 18 | 
1 files changed, 8 insertions, 10 deletions
| diff --git a/runtime/autoload/remote/host.vim b/runtime/autoload/remote/host.vim index a8b505d096..5a3097af5d 100644 --- a/runtime/autoload/remote/host.vim +++ b/runtime/autoload/remote/host.vim @@ -1,15 +1,13 @@  let s:hosts = {} -let s:plugin_patterns = { -      \ 'python': '*.py', -      \ 'python3': '*.py', -      \ } +let s:plugin_patterns = {}  let s:remote_plugins_manifest = fnamemodify($MYVIMRC, ':p:h')        \.'/.'.fnamemodify($MYVIMRC, ':t').'-rplugin~'  " Register a host by associating it with a factory(funcref) -function! remote#host#Register(name, factory) +function! remote#host#Register(name, pattern, factory)    let s:hosts[a:name] = {'factory': a:factory, 'channel': 0, 'initialized': 0} +  let s:plugin_patterns[a:name] = a:pattern    if type(a:factory) == type(1) && a:factory      " Passed a channel directly      let s:hosts[a:name].channel = a:factory @@ -71,7 +69,7 @@ endfunction  " The third item in a declaration is a boolean: non zero means the command,  " autocommand or function will be executed synchronously with rpcrequest.  function! remote#host#RegisterPlugin(host, path, specs) -  let plugins = s:PluginsForHost(a:host) +  let plugins = remote#host#PluginsForHost(a:host)    for plugin in plugins      if plugin.path == a:path @@ -180,7 +178,7 @@ command! UpdateRemotePlugins call s:UpdateRemotePlugins()  let s:plugins_for_host = {} -function! s:PluginsForHost(host) +function! remote#host#PluginsForHost(host)    if !has_key(s:plugins_for_host, a:host)      let s:plugins_for_host[a:host] = []    end @@ -200,7 +198,7 @@ function! s:RequirePythonHost(name)    let args = ['-c', 'import neovim; neovim.start_host()']    " Collect registered Python plugins into args -  let python_plugins = s:PluginsForHost(a:name) +  let python_plugins = remote#host#PluginsForHost(a:name)    for plugin in python_plugins      call add(args, plugin.path)    endfor @@ -222,6 +220,6 @@ function! s:RequirePythonHost(name)      \ 'See also ~/.nvimlog.'  endfunction -call remote#host#Register('python', function('s:RequirePythonHost')) -call remote#host#Register('python3', function('s:RequirePythonHost')) +call remote#host#Register('python', '*.py', function('s:RequirePythonHost')) +call remote#host#Register('python3', '*.py', function('s:RequirePythonHost'))  " }}} | 
