aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorSteven Arcangeli <stevearc@stevearc.com>2024-07-16 00:23:33 -0700
committerSteven Arcangeli <stevearc@stevearc.com>2024-07-16 00:23:33 -0700
commit310e2e95a4f832163f3f7a9fedebb1a4afc0db69 (patch)
tree0e26974ea26bc9c4a1991ac7474f73ba26ac98fd /lua
parent1d1362b0261d06a0b91872e916c172320bbb988a (diff)
fix: display stdout as error message if stderr is empty (#486)
Diffstat (limited to 'lua')
-rw-r--r--lua/conform/runner.lua12
1 files changed, 10 insertions, 2 deletions
diff --git a/lua/conform/runner.lua b/lua/conform/runner.lua
index 333c16f..2724cd6 100644
--- a/lua/conform/runner.lua
+++ b/lua/conform/runner.lua
@@ -272,6 +272,12 @@ M.apply_format = function(
return not vim.tbl_isempty(text_edits)
end
+---@param output? string[]
+---@return boolean
+local function is_empty_output(output)
+ return not output or vim.tbl_isempty(output) or (#output == 1 and output[1] == "")
+end
+
---Map of formatter name to if the last run of that formatter produced an error
---@type table<string, boolean>
local last_run_errored = {}
@@ -402,10 +408,12 @@ local function run_formatter(bufnr, formatter, config, ctx, input_lines, opts, c
log.debug("%s stdout: %s", formatter.name, stdout)
log.debug("%s stderr: %s", formatter.name, stderr)
local err_str
- if stderr and not vim.tbl_isempty(stderr) then
+ if not is_empty_output(stderr) then
err_str = table.concat(stderr, "\n")
- elseif stdout and not vim.tbl_isempty(stdout) then
+ elseif not is_empty_output(stdout) then
err_str = table.concat(stdout, "\n")
+ else
+ err_str = "unknown error"
end
if
vim.api.nvim_buf_is_valid(bufnr)