aboutsummaryrefslogtreecommitdiffstats
path: root/lua/conform/runner.lua
diff options
context:
space:
mode:
authorSteven Arcangeli <stevearc@stevearc.com>2023-11-06 20:57:00 -0800
committerSteven Arcangeli <stevearc@stevearc.com>2023-11-06 20:57:12 -0800
commitdcbe650bd4811cefe5a885fafb6309c7d592bda6 (patch)
tree6cf35a2f156d93ed0c59af735853ec26b932b4ee /lua/conform/runner.lua
parentd8ec7f8d0b230805ddd49f8d2f6a5d81bd5bb6fd (diff)
fix: catch jobstart errors (#183)
Diffstat (limited to 'lua/conform/runner.lua')
-rw-r--r--lua/conform/runner.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/lua/conform/runner.lua b/lua/conform/runner.lua
index 4146163..4b166a9 100644
--- a/lua/conform/runner.lua
+++ b/lua/conform/runner.lua
@@ -299,7 +299,7 @@ local function run_formatter(bufnr, formatter, config, ctx, input_lines, opts, c
local stderr
local exit_codes = config.exit_codes or { 0 }
local jid
- jid = vim.fn.jobstart(cmd, {
+ local ok, jid_or_err = pcall(vim.fn.jobstart, cmd, {
cwd = cwd,
env = env,
stdout_buffered = true,
@@ -364,6 +364,14 @@ local function run_formatter(bufnr, formatter, config, ctx, input_lines, opts, c
end
end,
})
+ if not ok then
+ callback({
+ code = errors.ERROR_CODE.JOBSTART,
+ message = string.format("Formatter '%s' error in jobstart: %s", formatter.name, jid_or_err),
+ })
+ return
+ end
+ jid = jid_or_err
if jid == 0 then
callback({
code = errors.ERROR_CODE.INVALID_ARGS,