* Evaluate any non-special args in apheleia-formatters (#55)
Allows you to place snippets of elisp within a formatter command that
will be evaluated and substituted in place when apheleia decides to run
that command.
* Update apheleia.el
Co-authored-by: Radon Rosborough <radon.neon@gmail.com>
* Support multiple formatters (#31)
Closes#31
This commit makes it so apheleia can run multiple formatters one after
the other and use the resultant output to format the current buffer.
This works somewhat like a pipeline. The output of one formatter becomes
the input to the next formatter until all formatters have run and then
an RCS patch is built from the resultant output and applied to the
current buffer.
Note: For convenience we internally represent the users configuration as
a list of formatters even when it may only be one. For example if the
user has configured `(python-mode . black)` in apheleia-mode-alist then
internally we interpret that as a formatter list of `(black)` instead of
`black` as we did previously.
* Support multiple formatters (#31)
Closes#31
This commit makes it so apheleia can run multiple formatters one after
the other and use the resultant output to format the current buffer.
This works somewhat like a pipeline. The output of one formatter becomes
the input to the next formatter until all formatters have run and then
an RCS patch is built from the resultant output and applied to the
current buffer.
Note: For convenience we internally represent the users configuration as
a list of formatters even when it may only be one. For example if the
user has configured `(python-mode . black)` in apheleia-mode-alist then
internally we interpret that as a formatter list of `(black)` instead of
`black` as we did previously.
* Make some changes
* Make some changes
* Error when a (not-first) formatter uses file or filepath
* Prevent formatter recieving stdin when using `file'
Co-authored-by: Radon Rosborough <radon.neon@gmail.com>
* Add Rust formatter rustfmt.
* Add LaTeX formatter latexindent.
There's a lot of LaTeX modes. I'm not sure how to distinguish them.
* Alphabetize apheleia-formatters and apheleia-mode-alist.
Alphabetizing them makes it easier to find which formatters are
supported.
* Add Java formatter with google-java-format.
* Add C and C++ formatter with clang-format.
* Update changelog
Co-authored-by: Radon Rosborough <radon.neon@gmail.com>
* Update apheleia-formatters type spec to avoid customize-variable error
Declare all of the permitted special symbols used in apheleia-formatters commands.
Without this, 'customize-variable never allows settting the value of apheleia-formatters, instead reporting an error about a mismatch between the default value and the type.
* Update CHANGELOG.md
* Break long line
* Update CHANGELOG.md
* Update CHANGELOG.md
* Create CHANGELOG.md
Co-authored-by: Radon Rosborough <radon.neon@gmail.com>
Unfortunately, we need to address the problem more fundamentally. The
previous fix causes the end of the buffer to be truncated under some
circumstances.
This reverts commit c77a781912.