diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim-lsp-installer/servers/r_language_server/init.lua | 22 |
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 = ([[ |
