The easiest way to use erlfmt is as a rebar plugin, by adding to your
rebar.config:
{project_plugins, [erlfmt]}.This will provide a new rebar3 fmt task.
All erlfmt command-line options can be configured with defaults in your rebar.config, for example:
{erlfmt, [
write,
{files, "{src,include,test}/*.{hrl,erl}"}
]}.Now you can format the files in your project by running:
$ rebar3 fmtAnd you can add the following command in your CI to ensure your Erlang is formatted:
$ rebar3 fmt --checkThis means that --check overwrites --write.
The options specified in the rebar.config file can all be overwritten using command line arguments.
For example, if you want to format in place as specified in the rebar.config with the write option,
but only format a single file, then you can overwrite the file list:
$ rebar3 fmt ./src/myfile.erlYou could also setup your rebar3 config to:
- only format files that include a
%%% % @formatcomment, usingrequire_pragma, - only check files and not format them, using
checkinstead ofwrite, - output which files are being checked, using
verboseand - set the default width, using
{print_width, 100} - If you do not specify files, then the default is
{files, ["{src,include,test}/*.{hrl,erl,app.src}", "rebar.config"]} - Exclude generated files, like
src/erlfmt_parse.erl
{erlfmt, [
check,
require_pragma,
verbose,
{print_width, 100},
{files, ["{src,include,test}/*.{hrl,erl,app.src}", "rebar.config"]},
{exclude_files, ["src/erlfmt_parse.erl"]}
]}.See the command line help for a complete list of options:
$ rebar3 --helpSimply convert dashes to underscores as appropriate,
for example --insert-pragma, becomes insert_pragma.