aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/core/spawn.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/nvim-lsp-installer/core/spawn.lua')
-rw-r--r--lua/nvim-lsp-installer/core/spawn.lua9
1 files changed, 6 insertions, 3 deletions
diff --git a/lua/nvim-lsp-installer/core/spawn.lua b/lua/nvim-lsp-installer/core/spawn.lua
index 992b1557..4776ff66 100644
--- a/lua/nvim-lsp-installer/core/spawn.lua
+++ b/lua/nvim-lsp-installer/core/spawn.lua
@@ -3,8 +3,6 @@ local Result = require "nvim-lsp-installer.core.result"
local process = require "nvim-lsp-installer.process"
local platform = require "nvim-lsp-installer.platform"
-local async_spawn = a.promisify(process.spawn)
-
---@alias JobSpawn Record<string, async fun(opts: JobSpawnOpts): Result>
---@type JobSpawn
local spawn = {
@@ -58,7 +56,12 @@ setmetatable(spawn, {
end
local cmd = self._aliases[k] or k
- local _, exit_code = async_spawn(cmd, spawn_args)
+ local _, exit_code = a.wait(function(resolve)
+ local handle, stdio = process.spawn(cmd, spawn_args, resolve)
+ if args.on_spawn and handle and stdio then
+ args.on_spawn(handle, stdio)
+ end
+ end)
if exit_code == 0 then
return Result.success {