# Changelog ## v0.11.0 (12.02.2021) List comprehensions revisited ### Enhancements - Updated formatting for list comprehensions #249 - preserve newline after's arrow #245 - preserve newlines after equal #248 ## v0.10.0 (22.01.2021) Preserve a single empty line between attributes ### Enhancements - 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. ### Fixes - 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 ## v0.9.0 (4.11.2020) Default files and exclude_files option ### Enhancements - 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 ### Fixes - 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 ## v0.8.0 (5.10.2020) Better rebar integration ### Enhancements - Better rebar integration #196 #183 #197 #200 - Change formatting of pipes to prefixes #191 #194 ### Fixes - Parse attributes with empty parens #189 - Do not crash with comments before a dot #184 - Do not crash with post comments in catch #195 ## v0.7.0 (17.09.2020) `--check` flag now provides exit code 1, if files are not formatted. ### Enhancements - `--check` flag #123 ### Bug fixes - 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 ## v0.6.0 (18.08.2020) Configurable print-width and erlfmt-ignore comment ### Enhancements - `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 ### Bug fixes - 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 ## v0.5.1 (05.08.2020) ### Bug fixes - correctly handle type unions inside of multiline containers (such as specs) #90 ## v0.5.0 (05.08.2020) ### Enhancements - 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 ### Bug fixes - correctly handle `.script` files like `rebar.config.script` #79 - `export_type` is formatted the same as `export` #86 - print type unions either all on single line or each type separated by `|` on a separate line #84 ## v0.4.2 (24.07.2020) ### Bug Fixes - `--require-pragma` combined with stdio for files with high-codepoint unicode ## v0.4.1 (23.07.2020) ### Bug Fixes - Fix dialyzer - `--require-pragma` for single-form and non-unicode files - Compiles with rebar3 3.14 ## v0.4.0 (23.07.2020) ### Enhancements - 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 ### Bug Fixes - Preserve empty lines between attributes #67 - Remove space between single clause fun and parens #68 ## v0.3.0 (09.07.2020) ### Enhancements - Allow reading from stdin with command `$ erlfmt -` #46 - Support Erlang version 23.0 ### Bug Fixes - 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 ## v0.2.0 (03.06.2020) ### New formatting algebra 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. ### Bug Fixes - 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 ### Enhancements - Support formatting escripts and "consult" files like rebar.config - Add `--require-pragma` flag to only format files annotated with `@format` ## v0.1.0 (06.04.2020) Initial release