Log an error when a formatter's executable is not found (#269)

I was trying to set up a new formatter and it wasn't in my exec-path, so
it wasn't running anything. But there was no message in the apheleia
logs, even with `apheleia-log-debug-info` enabled. This adds a log entry
when the executable is not found.

Hopefully the formatting is okay - I think Apheleia re-indented it so
hopefully that's good.

Fixes #268

---------

Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
This commit is contained in:
Ibrahim Awwal 2023-12-09 15:44:41 -08:00 committed by GitHub
parent 8f512dba3e
commit efb9992c00
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -980,24 +980,28 @@ purposes."
(let ((load-suffixes '(".el")))
(locate-library "apheleia"))))))
exec-path)))
(when (executable-find (apheleia-formatter--arg1 ctx)
(eq apheleia-remote-algorithm 'remote))
(apheleia--execute-formatter-process
:ctx ctx
:callback
(lambda (stdout)
(when-let ((output-fname (apheleia-formatter--output-fname ctx)))
;; Load output-fname contents into the stdout buffer.
(with-current-buffer stdout
(erase-buffer)
(insert-file-contents-literally output-fname)))
(funcall callback stdout))
:ensure
(lambda ()
(dolist (fname (list (apheleia-formatter--input-fname ctx)
(apheleia-formatter--output-fname ctx)))
(when fname
(ignore-errors (delete-file fname))))))))))
(if (executable-find (apheleia-formatter--arg1 ctx)
(eq apheleia-remote-algorithm 'remote))
(apheleia--execute-formatter-process
:ctx ctx
:callback
(lambda (stdout)
(when-let
((output-fname (apheleia-formatter--output-fname ctx)))
;; Load output-fname contents into the stdout buffer.
(with-current-buffer stdout
(erase-buffer)
(insert-file-contents-literally output-fname)))
(funcall callback stdout))
:ensure
(lambda ()
(dolist (fname (list (apheleia-formatter--input-fname ctx)
(apheleia-formatter--output-fname ctx)))
(when fname
(ignore-errors (delete-file fname))))))
(apheleia--log
'process
"Could not find executable for formatter %s, skipping" formatter)))))
(defun apheleia--run-formatter-function
(func buffer remote callback stdin formatter)