diff options
| author | William Boman <william@redwill.se> | 2022-12-26 17:43:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-26 17:43:01 +0100 |
| commit | 21a2475da458e97be798bdc9261da24460da5c65 (patch) | |
| tree | 7138d6b8d3badd52b738d773449c9a388a1af540 /lua/mason-registry/r-languageserver/init.lua | |
| parent | feat(powershell): set $ErrorActionPreference = "Stop"; (#807) (diff) | |
| download | mason-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.lua | 12 |
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())) |
