aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/servers/r_language_server/init.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-04-08 09:25:34 +0200
committerGitHub <noreply@github.com>2022-04-08 09:25:34 +0200
commit5c223f21ff8b513e87ff9f002d5d133dffe729de (patch)
tree29ada007d785baa2e0f986f4cf70589975c1e741 /lua/nvim-lsp-installer/servers/r_language_server/init.lua
parentrun autogen_metadata.lua (diff)
downloadmason-5c223f21ff8b513e87ff9f002d5d133dffe729de.tar
mason-5c223f21ff8b513e87ff9f002d5d133dffe729de.tar.gz
mason-5c223f21ff8b513e87ff9f002d5d133dffe729de.tar.bz2
mason-5c223f21ff8b513e87ff9f002d5d133dffe729de.tar.lz
mason-5c223f21ff8b513e87ff9f002d5d133dffe729de.tar.xz
mason-5c223f21ff8b513e87ff9f002d5d133dffe729de.tar.zst
mason-5c223f21ff8b513e87ff9f002d5d133dffe729de.zip
r_language_server: install languageserversetup via remotes::install_github (#580)
Co-authored-by: Samuel C-J Lee <chia-jung.l@outlook.com>
Diffstat (limited to 'lua/nvim-lsp-installer/servers/r_language_server/init.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 = ([[