Erlfmt 1.0 release candidate

I’m very happy to announce that recently we’ve released erlfmt 0.13.0 that we consider first release candidate for the 1.0 release.

What is erlfmt

erlfmt is an opinionated Erlang code formatter. By automating the process of formatting the code, it frees your team up to focus on what the code does, instead of what it looks like. erlfmt works with any Erlang file: .erl , .hrl , rebar.config , escripts, and more. It can be used both in rebar3 projects and standalone as a precompiled escript.

In it’s design approach erlfmt is very similar to the Elixir formatter - it should feel very familiar for most Elixir users. The formatter never changes the semantics or structure of the code. It provides as little configuration as possible. It also avoids special cases as much as possible. Elixir users will also find the familiar behaviour of preserving newlines and respecting some other elements of the original format.

What does the 1.0 release mean

With the 1.0 release we intend to stabilise the format — this means that changes that cause the formatter to re-format the code won’t happen, outside of fixing critical bugs. This offers increased stability and confidence to the users.

We’d like your feedback

We intend to release the final 1.0 version on May 17. Now is the final opportunity for feedback, if you’d like to influence the format erlfmt produces. In general, though, we won’t consider major changes, in particular those around major choices we’ve been documenting in formatting decision documents, without a very compelling argument.

It’s now great time to try out erlfmt on your project. If you do have any feedback we haven’t addressed before, we would appreciate you sharing your remarks on github issues with examples.

Links

16 Likes

Congratulations this was one of the things always bothered me when I was getting into Erlang, before Elixir was a thing. I feel like it’s going to help people experiment with Erlang.

4 Likes

I know Elixir didn’t have a code formatter when I started using it but it was more familiar because I was coming from using a lot of Python and the syntax seemed easy to pick up.

Was a bit more intimidating sending PRs in Erlang projects where you weren’t sure if you were following the correct formatting rules.