aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-lsp-installer/servers/r_language_server/init.lua22
1 files changed, 19 insertions, 3 deletions
diff --git a/lua/nvim-lsp-installer/servers/r_language_server/init.lua b/lua/nvim-lsp-installer/servers/r_language_server/init.lua
index c8ae0f41..4a36c289 100644
--- a/lua/nvim-lsp-installer/servers/r_language_server/init.lua
+++ b/lua/nvim-lsp-installer/servers/r_language_server/init.lua
@@ -7,15 +7,31 @@ return function(name, root_dir)
options(langserver_library = %q);
options(repos = list(CRAN = "http://cran.rstudio.com/"));
rlsLib <- getOption("langserver_library");
-install.packages("languageserversetup", lib = rlsLib);
-loadNamespace("languageserversetup", lib.loc = rlsLib);
+didInstallRemotes <- FALSE;
+tryCatch(
+ expr = { library("remotes") },
+ error = function (e) {
+ install.packages("remotes", lib = rlsLib);
+ loadNamespace("remotes", lib.loc = rlsLib);
+ didInstallRemotes <- TRUE;
+ }
+);
+
+remotes::install_github("jozefhajnala/languageserversetup", lib = rlsLib);
+
+if (didInstallRemotes) {
+ remove.packages("remotes", lib = rlsLib);
+}
+
+loadNamespace("languageserversetup", lib.loc = rlsLib);
languageserversetup::languageserver_install(
fullReinstall = TRUE,
confirmBeforeInstall = FALSE,
strictLibrary = TRUE
);
-]]):format(install_dir, install_dir, install_dir)
+library("languageserver", lib.loc = rlsLib);
+]]):format(install_dir)
end
local server_script = ([[