Every module listed above has been actioned in some way now, either included and tested in an isolated case, already included upstream, or crossed out due to lacking tooling support/requiring a domain expert.
Next pass will be spending a bit more time on each module (as well as checking if I’ve missed any modules that make sense to add a formatter for) and then writing install documentation for each module (as well as workarounds for any known issues/weirdness)
As it stands, this is ready for testing by whomever wants to; I’m not an expert on every language so I would have no idea about best practices in most of the modules.
And as above, if you’re a user of any module that is crossed out, please do let me know of a working linter/formatter that:
Accepts input from stdin
Sends output to stdout
Can be installed/used as a script/executable or at worst through arguments to a tool
TL;DR large bulk of the work is done, please test if you can
Upstream does support nix, but it’s the nixfmt formatter which isn’t used very much. The community has not yet agreed on a canonical formatter but AFAIK, nixpkgs-fmt is used far more frequently, so maybe we should add that in here for now?
This is almost certainly a good candidate for an upstream change, so I’ll test it tonight and create an upstream PR (and also make the change in doom so it’s not blocked)
Are you able to offer any input on ESS? If you use it AFAICT all I need is an R formatter for that one, have a couple but I’m not sure how much that misses out
People may have stuff like (add-hook 'python-mode-hook #'format-all-mode) (as hinted in the documentation). This won’t work anymore as they have to use to apheleia-mode. But maybe this is not worth the trouble.
This is not handled by the current code (despite the comment of set-formatter! saying otherwise) and apheleia does not know how to handle it either and tries to execute it as is.