[ANN] OCamlFormat 0.19.0

We are happy to announce the release of OCamlFormat 0.19.0.

OCamlformat is an auto-formatter for OCaml code, writing the parse tree and comments in a consistent style, so that you do not have to worry about formatting it by hand, and to speed up code review by focusing on the important parts.

OCamlFormat is beta software. We expect the program to change considerably before we reach version 1.0.0. In particular, upgrading the ocamlformat package will cause your program to get reformatted. Sometimes it is relatively pain-free, but sometimes it will make a diff in almost every file. We are working towards having a tool that pleases most usecases in the OCaml community, please bear with us!

To make sure your project uses the last version of ocamlformat, please set

version=0.19.0

in your .ocamlformat file.

Main changes in ocamlformat.0.19.0 are:

  • OCaml 4.13 features are supported
  • ppxlib dependency has been dropped
  • A new line-endings={lf,crlf} option has been added for windows compatibility

Here is the full list of changes.

We encourage you to try ocamlformat, that can be installed from opam directly ( opam install ocamlformat ), but please remember that it is still beta software. We have a FAQ for new users that should help you decide if ocamlformat is the right choice for you.

The OCamlFormat dev team

11 Likes

Just to expand a bit on this feature: previously, ocamlformat would use the system EOL convention (ie LF on Unix-like OSs and CRLF on Windows). This meant that if you applied ocamlformat on systems with different EOL conventions, you would get a diff on every line on every file purely due to the changed newlines. Furthermore, this meant ocamlformat was hard to use if your project used LF on Windows (a common usage).

With the new option, ocamlformat enforces a given EOL convention. The system EOL convention is no longer used for any purpose and the EOL convention used is the one specified in ocamlformat's config (LF by default).

Cheers,
Nicolas

9 Likes

The library works fine with my project.
Congrats and thanks for the good work.

2 Likes