diff options
| author | William Boman <william@redwill.se> | 2023-04-16 21:42:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-16 19:42:54 +0000 |
| commit | 0184cf4b6d009623d8610cae956c44471e68250d (patch) | |
| tree | 9fb7be11ff168f9ff64b4a7ed2b6e43bcf0b3542 | |
| parent | refactor(health): split up checks (#1221) (diff) | |
| download | mason-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.md | 2 | ||||
| -rw-r--r-- | lua/mason-registry/index/init.lua | 1 | ||||
| -rw-r--r-- | lua/mason-registry/index/r-languageserver/init.lua | 87 |
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, -} |
