diff options
| author | leonidborisenko <leonidborisenko@users.noreply.github.com> | 2022-10-05 23:19:36 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-05 23:19:36 +0000 |
| commit | aae79b7b2a1a7bc905b005ec3f43feb56918b93d (patch) | |
| tree | 7063079e94cee6c88520b494e7dbdb2b04ea1fe5 | |
| parent | 7aa46ba84f06251f280d226f98cb06ef83a0a697 (diff) | |
Use inplace formatter output (#132)
When formatting command is defined with symbol `inplace`, it doesn't
work.
I'm using [casey/just](https://github.com/casey/just) (v1.5.0).
It doesn't support formatting of `stdin`, but it supports in-place
formatting with command `just --unstable --fmt --justfile
/tmp/justfile`. So I've added a list to to `apheleia-formatters` custom
variable:
```elisp
(add-to-list 'apheleia-formatters
'(just . ("just" "--unstable" "--fmt" "--justfile" inplace))
"APPEND:non-nil")
```
Minimal `justfile` before formatting (there is one space before `echo`):
```make
rule:
echo test
```
Expected formatting result (there are four spaces before `echo`):
```make
rule:
echo test
```
Without this pull request there are no visible changes after
<kbd>C-u</kbd> <kbd>M-x</kbd> `apheleia-format-buffer` <kbd>RET</kbd>
`just` <kbd>RET</kbd>. When this pull request is applied, formatting
proceed as expected.
Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
| -rw-r--r-- | CHANGELOG.md | 3 | ||||
| -rw-r--r-- | apheleia.el | 14 |
2 files changed, 10 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index fca7720..d11bc9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,8 @@ The format is based on [Keep a Changelog]. * clang-format doesn't handle filenames correctly by default. Support for guessing the flags from first the file name then the major mode in the case of a temporary buffer was added in [#128] +* Fix handling of formatters using `inplace` in some circumstances + ([#132]). ### Formatters * [elm-format](https://github.com/avh4/elm-format) for Elm ([#100]). @@ -64,6 +66,7 @@ The format is based on [Keep a Changelog]. [#126]: https://github.com/radian-software/apheleia/pull/126 [#127]: https://github.com/radian-software/apheleia/pull/127 [#128]: https://github.com/radian-software/apheleia/pull/128 +[#132]: https://github.com/radian-software/apheleia/pull/132 ## 3.0 (released 2022-06-01) ### Breaking changes diff --git a/apheleia.el b/apheleia.el index 16ae04b..39e4e76 100644 --- a/apheleia.el +++ b/apheleia.el @@ -803,11 +803,11 @@ machine from the machine file is available on")) (let ((input-fname (apheleia--strip-remote input-fname))) (setq command (mapcar (lambda (arg) (if (memq arg '(input inplace)) - input-fname + (progn + (setq output-fname input-fname) + input-fname) arg)) - command))) - (when (memq 'inplace command) - (setq output-fname input-fname))) + command)))) (when (memq 'output command) (setq output-fname (apheleia--make-temp-file run-on-remote "apheleia")) (let ((output-fname (apheleia--strip-remote output-fname))) @@ -871,9 +871,9 @@ purposes." (lambda (stdout) (when output-fname ;; Load output-fname contents into the stdout buffer. - (erase-buffer) - (insert-file-contents-literally output-fname)) - + (with-current-buffer stdout + (erase-buffer) + (insert-file-contents-literally output-fname))) (funcall callback stdout)) :ensure (lambda () |
