Commit graph

17 commits

Author SHA1 Message Date
Michael Eliachevitch
4a87523f80
Add docformatter which formats Python docstrings to PEP 257 (#267)
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>
2023-12-14 18:46:12 -08:00
Ville Skyttä
53c0389b5e
Add support for dprint (#249)
https://dprint.dev

---------

Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
2023-12-14 18:30:35 -08:00
Ed Slocomb
54a192c345
Add support for formatters locally installed via yarn 2+ pnp mode (#200)
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>
2023-11-05 12:08:58 -08:00
Mohsin Kaleem
51b8a796b6
Restructure and refactor apheleia package (#215)
CLOSES #212 

PR to restructure apheleia to make it more modular and improve some of
the separation of concerns. Before merging we should make sure that we
don't reintroduce the issues from #181.
2023-10-17 21:20:38 +01:00
Radon Rosborough
791346cd3a
Fix brittany formatter & misc improvements (#222)
* Fix brittany installation, needed the `--reorder-goals` argument to be
added so that a version that was not the latest version could be
installed so that it was compatible with the base lib version shipped
with Ubuntu 20.04. We'll upgrade to 22.04 eventually (before it falls
out of LTS). Ref: https://github.com/radian-software/apheleia/pull/221
* Add a `make fmt-build-common` target which allows tagging a docker
image containing just the base software and not any formatters, to make
it easy to debug formatter installation manually.
* Update `apheleia-ft` to also run formatter tests when any files
affecting a formatter are changed, which includes the installation
script, the sample input/output, and also any scripts (e.g.
`apheleia-phpcs`) that it uses. We don't have any logic that will run
all formatter tests at once, because that is unwieldy. That can be done
manually if making a big change.
* Update to actions/checkout@v4 from v2 because the older one was listed
as deprecated.
* Print full stacktraces when `apheleia-ft` fails with an Elisp error.
2023-10-06 22:01:38 -07:00
Mohsin Kaleem
3abce6308e
Require apheleia-core to detect changed formatters (#186)
Fixes PR builds.
2023-04-20 12:46:59 +01:00
Mohsin Kaleem
ad728cfa76
Update existing formatters to use new formatter helper functions (#167) 2023-04-16 17:50:52 +01:00
Mohsin Kaleem
edec1e61c8
Add various helper functions for defining formatters (#166) 2023-03-25 14:56:54 +00:00
Radon Rosborough
782db66457 Fix formatter tests 2023-03-17 18:53:52 -07:00
Mohsin Kaleem
a7800ac50b Revert "Update tests to fix failures from formatter definition changes"
This reverts commit e2062d612d.
2023-03-12 10:50:44 +00:00
Mohsin Kaleem
e2062d612d Update tests to fix failures from formatter definition changes 2023-03-12 10:45:14 +00:00
Mohsin Kaleem
3e93610387
Separate formatters definitions from core apheleia library (#161)
Moves the bulk of apheleia.el into a new apheleia-core.el file and move
formatter definitions and mode-associations into a new
apheleia-formatters.el file. The end user experience should be
unchanged. Loading `apheleia.el` will still load everything load
everything, just like it used to.
2023-03-12 10:22:36 +00:00
Ellis Kenyő
9101a3380c
Assume filename correctly (#128)
Fixes #108

Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
2022-09-13 19:05:22 -07:00
Ellis Kenyő
9b745df2fa
Add emacs-lisp formatting (#102)
* feat: add emacs-lisp formatting

* Disable indent-tabs-mode

* Add stub file for installation

* Fix lint errors

* fix: correctly format based on previous mode

* Formatting

* Fix weird indent

* Add checkindent target

* Update changelog

* Long line

* Empty commit

* fix ci

* revert changelog reformatting

* more changelog

* more

Co-authored-by: Radon Rosborough <radon.neon@gmail.com>
Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
2022-09-03 11:22:35 -07:00
Radon Rosborough
b25256f1b0 [#99] Remove erroneous reference to master 2022-06-03 17:41:25 -07:00
Ellis Kenyő
982df5a2e0
Add phpcs & introduce scripts/formatters (#87)
* 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>
2022-05-11 16:26:33 -07:00
Radon Rosborough
53f243b111
Add formatter tests (#72)
Closes #24
Builds on #25 by @PrimaryCanary
2022-01-05 15:35:12 -08:00