aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-registry/r-languageserver/init.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-12-26 17:43:01 +0100
committerGitHub <noreply@github.com>2022-12-26 17:43:01 +0100
commit21a2475da458e97be798bdc9261da24460da5c65 (patch)
tree7138d6b8d3badd52b738d773449c9a388a1af540 /lua/mason-registry/r-languageserver/init.lua
parentfeat(powershell): set $ErrorActionPreference = "Stop"; (#807) (diff)
downloadmason-21a2475da458e97be798bdc9261da24460da5c65.tar
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.gz
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.bz2
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.lz
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.xz
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.zst
mason-21a2475da458e97be798bdc9261da24460da5c65.zip
refactor: interact with libuv pipes in async context (#808)
Also now properly close pipes (shutdown -> close).
Diffstat (limited to 'lua/mason-registry/r-languageserver/init.lua')
-rw-r--r--lua/mason-registry/r-languageserver/init.lua12
1 files changed, 7 insertions, 5 deletions
diff --git a/lua/mason-registry/r-languageserver/init.lua b/lua/mason-registry/r-languageserver/init.lua
index fd7d0292..80376aee 100644
--- a/lua/mason-registry/r-languageserver/init.lua
+++ b/lua/mason-registry/r-languageserver/init.lua
@@ -1,6 +1,7 @@
+local a = require "mason-core.async"
+local async_uv = require "mason-core.async.uv"
local Pkg = require "mason-core.package"
local path = require "mason-core.path"
-local github_client = require "mason-core.managers.github.client"
local github = require "mason-core.managers.github"
---@param install_dir string
@@ -66,11 +67,12 @@ return Pkg.new {
source.with_receipt()
ctx.spawn.R {
"--no-save",
- on_spawn = function(_, stdio)
+ on_spawn = a.scope(function(_, stdio)
local stdin = stdio[1]
- stdin:write(create_install_script(ctx.cwd:get(), source.release))
- stdin:close()
- end,
+ async_uv.write(create_install_script(ctx.cwd:get(), source.release))
+ async_uv.close(stdin)
+ async_uv.shutdown(stdin)
+ end),
}
ctx.fs:write_file("server.R", create_server_script(ctx.package:get_install_path()))