1.0 Release Candidate 1
- Preserve newline in spec without guards #273 #275
- Preserve comments in receive after after #271
- Fix end_location in raw_string anno #274
- Fix pre dot comments in function #267
- Better error reporting for not_equivalent and tests #269
Tuples that are not tagged tuples are formatted as lists
- Break untagged tuples #259
- rewrite some binary operators using associativity #262 #264 #265
- next break fits for dolon #246
- double indent pattern matches in clauses #247
- fix parsing of bad records #261
Support macros in type and spec names
- Added shorthand
-i
for--insert-pragma
#256
- Support macros in type and spec names #254
List comprehensions revisited
- Updated formatting for list comprehensions #249
- preserve newline after's arrow #245
- preserve newlines after equal #248
Preserve a single empty line between attributes
- Preserve a single empty line between attributes #239
- Only write to file the formatted code when it is different to the current one #235
- Export the format_nodes function for symmetry with read_nodes function.
- no newline after spec #224
- preserve breaks after dolon #225
- fix: Crash formatting qlc_SUITE in OTP #240
- Preserve newlines between separated guards #241
- Adjust AST for try clauses such that they do not move comments around #242
Default files and exclude_files option
- Provide default value for
--files
when none is provided #204 - Add
--exclude-files
flag to manually exclude some files from the formatter #213 - Warn on overly long lines, given
--verbose
flag #209
- Comments below shebang are pull upwards to support emulator args #207
- Bind Pipe Tighter in parser #206
- Fix record field type end location in parser #201
- Properly handle comments inside concats #216
- Properly handle trailing comments followed by post-comments #217
- Preserve comments inside fun type arg list #218
Better rebar integration
- Better rebar integration #196 #183 #197 #200
- Change formatting of pipes to prefixes #191 #194
- Parse attributes with empty parens #189
- Do not crash with comments before a dot #184
- Do not crash with post comments in catch #195
--check
flag now provides exit code 1, if files are not formatted.
--check
flag #123
- Preserve newline in list & binary comprehensions #116
- Preserve new lines in guards and specs #115
- Make multi-line tuples & binaries next-break-fits #117
- Use deterministic compiler option for releasing precompiled escript #127
- Do not crash when formatting an empty file #130
- Relax map syntax #137
- Support macros with parens in concat #138
Configurable print-width and erlfmt-ignore comment
print-width
is now configurable as a command line parameter #99% erlfmt-ignore
comment ignores the next form and does not format it #98- files are now formatted in parallel #101
- Preserve empty lines around if-like attributes #97
- Don't break multiple clauses with comments #96
- Make try and after always introduce a newline #107
- Do not preserve operator newline with a next break fits expression #104
- New format for multiline fun types #110
- correctly handle type unions inside of multiline containers (such as specs) #90
- new
--insert-pragma
CLI option adds the@format
pragma to all the formatted files that didn't have it before #75 - preserve empty lines in containers #83
- correctly handle
.script
files likerebar.config.script
#79 export_type
is formatted the same asexport
#86- print type unions either all on single line or each type separated by
|
on a separate line #84
--require-pragma
combined with stdio for files with high-codepoint unicode
- Fix dialyzer
--require-pragma
for single-form and non-unicode files- Compiles with rebar3 3.14
- require-pragma prints out original file instead of formatting if no pragma is found. This makes it easier to integrate into a CI pipeline. #57
- Better exceptions #58
- Group imports and exports with similar names on the same line. #65
- Add format_string as a library call. #66
- Preserve empty lines between attributes #67
- Remove space between single clause fun and parens #68
- Allow reading from stdin with command
$ erlfmt -
#46 - Support Erlang version 23.0
- Remove trailing spaces from comments #48
- Make position of return type in specs consistent #47
- Fix some parser failures in OTP #39
- Concat converted from a string also forces breaks #43
Switched out formatting algorithm. This is now based on Elixir's greedy algorithm, instead of a lazy algorithm. This fixes performance issues with laying out larger tuples.
- Preserve empty lines between comments and expressions
- Stop adding unnecessary empty lines between attributes
- Stop indenting list and binary comprehensions unnecessarily
- Fix formatting multiple files from command line
- Ensure all parsable OTP files format cleanly
- Support formatting escripts and "consult" files like rebar.config
- Add
--require-pragma
flag to only format files annotated with@format
Initial release