| Age | Commit message (Collapse) | Author |
|
Behavior of `aphaleia-npx` currently differs from other formatters by
triggering an error when formatter is missing (causing a message to be
displayed in minibuffer and an error buffer to be created).
This PR adds a test to check if command is on user's PATH before
executing it in order to make `aphaleia-npx` silently ends when the
formatter command is not found at project and system level.
|
|
With the current way of passing things to aphelia, sometimes compilation
output gets added to the top of the formatted file.
This is because `mix format -` will actually still use
[`Mix.Shell.info/1`](https://hexdocs.pm/mix/1.17.3/Mix.Shell.html#c:info/1)
to output thing like:
```
==> module
Compiling 56 files (.ex)
```
However `info` messages can be silenced when setting `MIX_QUIET`. Docs:
https://hexdocs.pm/mix/1.17.3/Mix.html#module-environment-variables
---------
Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
|
|
Closes #319 because this does the same thing but it transparently works
for all versions of mix-format.
|
|
* `apheleia-npx` would use an incorrect path for the Yarn PnP ESM
loader.
* `apheleia-npx` did not correctly guard against word splitting.
* `apheleia-npx` was sometimes not able to find formatters in a Yarn PnP
project if there was also a node_modules folder at the root of the
project. Unfortunately, many tools (including
[Prettier](https://github.com/prettier/prettier/issues/13032)) will
create a cache folder in `node_modules` even in Yarn PnP projects. The
presence of any `node_modules` folders are irrelevant when a `.pnp.cjs`
file is present.
---------
Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
|
|
Add [ruby-syntax-tree](https://github.com/ruby-syntax-tree/syntax_tree)
as an available formatter. Include support for finding a [`.streerc`
file](https://github.com/ruby-syntax-tree/syntax_tree#configuration).
---------
Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
|
|
Add [docformatter](https://github.com/PyCQA/docformatter) for Python
docstrings.
By default it outputs diffs but changes in-place with `--in-place`. On
successful change it exits with an error code of `3` (found out by
trial), so I had to add a formatter wrapping-script.
Initially I used `--in-place` with the special `in-place` symbol in
apheleia. But now I tried an approach where I transform the diff into
usable stdout using `patch` instead.
Related to #266 , where I had used the example of docformatter to ask
how to add scripts with positive exit codes and @raxod502 showed me the
`phpcs` solution.
---------
Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
|
|
Make it so that if there is a `.formatter.exs` file somewhere in the
parent directories, then Apheleia will run `mix format` from there
instead of the current directory.
Close #232
|
|
Gets all non-elisp dependencies into a single directory,
`scripts/formatters`
<!--
To expedite the pull request process, please see the contributor guide
for my projects:
<https://github.com/raxod502/contributor-guide>
-->
|
|
This adds support for formatters installed locally in project
directories via yarn 2's "zero install" [pnp
mode](https://yarnpkg.com/features/pnp).
It's quite similar to the support for formatters installed locally in a
project's `node_modules` via npm, and leverages the `npx` symbol, so
existing formatter definitions should work without modification.
This checks for a `.pnp.cjs` file (expected in the project root for yarn
pnp projects), then looks for a yarn executable, and checks the version
of yarn to make sure it supports pnp. If that works, we just push
`"yarn"` onto the front of `command`.
I've only tested this with a locally installed `prettier.js`. It's very
much a works-for-me draft, I'm putting in a PR to make sure this is a
workable approach before going any further with it.
---------
Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
|
|
* feat: add phpcs & introduce scripts/formatters
Add phpcs as a supported formatter, and include support for
apheleia-defined scripts for more troublesome formatters
* Revert Emacs version requirement
* More quoting
* Adjust language in documentation
* Thanks checkdoc, lol
Co-authored-by: Radon Rosborough <radon.neon@gmail.com>
|