aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-04-16 21:42:54 +0200
committerGitHub <noreply@github.com>2023-04-16 19:42:54 +0000
commit0184cf4b6d009623d8610cae956c44471e68250d (patch)
tree9fb7be11ff168f9ff64b4a7ed2b6e43bcf0b3542
parentrefactor(health): split up checks (#1221) (diff)
downloadmason-0184cf4b6d009623d8610cae956c44471e68250d.tar
mason-0184cf4b6d009623d8610cae956c44471e68250d.tar.gz
mason-0184cf4b6d009623d8610cae956c44471e68250d.tar.bz2
mason-0184cf4b6d009623d8610cae956c44471e68250d.tar.lz
mason-0184cf4b6d009623d8610cae956c44471e68250d.tar.xz
mason-0184cf4b6d009623d8610cae956c44471e68250d.tar.zst
mason-0184cf4b6d009623d8610cae956c44471e68250d.zip
chore: migrate r-languageserver (#1222)
-rw-r--r--PACKAGES.md2
-rw-r--r--lua/mason-registry/index/init.lua1
-rw-r--r--lua/mason-registry/index/r-languageserver/init.lua87
3 files changed, 1 insertions, 89 deletions
diff --git a/PACKAGES.md b/PACKAGES.md
index c72559d5..2617ff0b 100644
--- a/PACKAGES.md
+++ b/PACKAGES.md
@@ -2751,7 +2751,7 @@ Categories: `LSP` `Linter`
```
# r-languageserver
-> An implementation of the Language Server Protocol for R
+> An implementation of the Language Server Protocol for R.
Homepage: [https://github.com/REditorSupport/languageserver](https://github.com/REditorSupport/languageserver)
Languages: `R`
diff --git a/lua/mason-registry/index/init.lua b/lua/mason-registry/index/init.lua
index b6bfa826..e9752d03 100644
--- a/lua/mason-registry/index/init.lua
+++ b/lua/mason-registry/index/init.lua
@@ -2,6 +2,5 @@
-- stylua: ignore start
return {
["haskell-language-server"] = "mason-registry.index.haskell-language-server",
- ["r-languageserver"] = "mason-registry.index.r-languageserver",
verible = "mason-registry.index.verible"
} \ No newline at end of file
diff --git a/lua/mason-registry/index/r-languageserver/init.lua b/lua/mason-registry/index/r-languageserver/init.lua
deleted file mode 100644
index c8b08fb3..00000000
--- a/lua/mason-registry/index/r-languageserver/init.lua
+++ /dev/null
@@ -1,87 +0,0 @@
-local Pkg = require "mason-core.package"
-local a = require "mason-core.async"
-local async_uv = require "mason-core.async.uv"
-local github = require "mason-core.managers.github"
-local path = require "mason-core.path"
-
----@param install_dir string
----@param ref string
-local function create_install_script(install_dir, ref)
- return ([[
-options(langserver_library = %q);
-options(langserver_quiet = FALSE);
-options(repos = list(CRAN = "http://cran.rstudio.com/"));
-rlsLib <- getOption("langserver_library");
-.libPaths(new = rlsLib);
-
-didInstallRemotes <- FALSE;
-tryCatch(
- expr = { library("remotes") },
- error = function (e) {
- install.packages("remotes", lib = rlsLib);
- loadNamespace("remotes", lib.loc = rlsLib);
- didInstallRemotes <- TRUE;
- }
-);
-
-# We set force = TRUE because this command will error if languageserversetup is already installed (even if it's at a
-# different library location).
-remotes::install_github("jozefhajnala/languageserversetup", lib = rlsLib, force = TRUE);
-
-if (didInstallRemotes) {
- remove.packages("remotes", lib = rlsLib);
-}
-
-loadNamespace("languageserversetup", lib.loc = rlsLib);
-languageserversetup::languageserver_install(
- fullReinstall = FALSE,
- confirmBeforeInstall = FALSE,
- strictLibrary = TRUE,
- ref = %q
-);
-library("languageserver", lib.loc = rlsLib);
-]]):format(install_dir, ref)
-end
-
----@param install_dir string
-local function create_server_script(install_dir)
- return ([[
-options("langserver_library" = %q);
-rlsLib <- getOption("langserver_library");
-.libPaths(new = c(rlsLib, .libPaths()));
-loadNamespace("languageserver", lib.loc = rlsLib);
-languageserver::run();
- ]]):format(install_dir)
-end
-
-return Pkg.new {
- name = "r-languageserver",
- desc = [[An implementation of the Language Server Protocol for R]],
- homepage = "https://github.com/REditorSupport/languageserver",
- languages = { Pkg.Lang.R },
- categories = { Pkg.Cat.LSP },
- ---@async
- ---@param ctx InstallContext
- install = function(ctx)
- local source = github.release_version { repo = "REditorSupport/languageserver" }
- source.with_receipt()
- ctx.spawn.R {
- "--no-save",
- on_spawn = a.scope(function(_, stdio)
- local stdin = stdio[1]
- async_uv.write(stdin, create_install_script(ctx.cwd:get(), source.release))
- async_uv.shutdown(stdin)
- async_uv.close(stdin)
- end),
- }
- ctx.fs:write_file("server.R", create_server_script(ctx.package:get_install_path()))
-
- ctx:link_bin(
- "r-languageserver",
- ctx:write_shell_exec_wrapper(
- "r-languageserver",
- ("R --slave -f %q"):format(path.concat { ctx.package:get_install_path(), "server.R" })
- )
- )
- end,
-}