fix(extras/prettier): run "prettier" command in a shell

...instead of running it directly, which fails for installations where
"prettier" is a shell script (and not an executable)
This commit is contained in:
akioweh 2026-01-30 05:43:59 +00:00
parent c64a61734f
commit 3d12333b31
No known key found for this signature in database

View file

@ -30,8 +30,14 @@ local supported = {
--- Checks if a Prettier config file exists for the given context
---@param ctx ConformCtx
function M.has_config(ctx)
vim.fn.system({ "prettier", "--find-config-path", ctx.filename })
return vim.v.shell_error == 0
local res = vim
.system({
vim.o.sh,
vim.o.shcf,
"prettier --find-config-path " .. vim.fn.shellescape(ctx.filename),
}, { text = true })
:wait()
return res.code == 0
end
--- Checks if a parser can be inferred for the given context:
@ -45,7 +51,13 @@ function M.has_parser(ctx)
return true
end
-- otherwise, check if a parser can be inferred
local ret = vim.fn.system({ "prettier", "--file-info", ctx.filename })
local ret = vim
.system({
vim.o.sh,
vim.o.shcf,
"prettier --file-info " .. vim.fn.shellescape(ctx.filename),
}, { text = true })
:wait().stdout
---@type boolean, string?
local ok, parser = pcall(function()
return vim.fn.json_decode(ret).inferredParser