about summary refs log tree commit diff
path: root/pkgs/applications/editors/neovim/system_rplugin_manifest.patch
blob: f634d3ec056a20fab83fff374d05113d8c4e638e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
diff --git a/runtime/autoload/remote/host.vim b/runtime/autoload/remote/host.vim
index 6266b312b..965fabf1e 100644
--- a/runtime/autoload/remote/host.vim
+++ b/runtime/autoload/remote/host.vim
@@ -71,7 +71,8 @@ function! remote#host#RegisterPlugin(host, path, specs) abort
 
   for plugin in plugins
     if plugin.path == a:path
-      throw 'Plugin "'.a:path.'" is already registered'
+      " plugin already registered
+      return
     endif
   endfor
 
diff --git a/runtime/plugin/rplugin.vim b/runtime/plugin/rplugin.vim
index 122d8d47f..83fbf8b57 100644
--- a/runtime/plugin/rplugin.vim
+++ b/runtime/plugin/rplugin.vim
@@ -54,6 +54,10 @@ function! s:GetManifest() abort
 endfunction
 
 function! s:LoadRemotePlugins() abort
+  if exists('$NVIM_SYSTEM_RPLUGIN_MANIFEST')
+    let g:system_remote_plugins = fnamemodify($NVIM_SYSTEM_RPLUGIN_MANIFEST, ':p')
+    execute 'source' fnameescape(g:system_remote_plugins)
+  endif
   let g:loaded_remote_plugins = s:GetManifest()
   if filereadable(g:loaded_remote_plugins)
     execute 'source' fnameescape(g:loaded_remote_plugins)