blob: 621349f6c7e09178ca72f8e4e5a9a4216f0fc6c1 [file] [log] [blame] [view]
# 1.0.8
* Support v1 of `pkg/args`.
# 1.0.7
* Format multiline strings as block arguments (#570).
* Fix call to analyzer API.
* Support assert in initializer list experimental syntax (#522).
# 1.0.6
* Support URIs in part-of directives (#615).
# 1.0.5
* Support the latest version of `pkg/analyzer`.
# 1.0.4
* Ensure formatter throws an exception instead of introducing non-whitespace
changes. This sanity check ensures the formatter does not erase user code
when the formatter itself contains a bug.
* Preserve type arguments in generic typedefs (#619).
* Preserve type arguments in function expression invocations (#621).
# 1.0.3
* Preserve type arguments in generic function-typed parameters (#613).
# 1.0.2
* Support new generic function typedef syntax (#563).
# 1.0.1
* Ensure space between `-` and `--` (#170).
* Preserve a blank line between enum cases (#606).
# 1.0.0
* Handle mixed block and arrow bodied function arguments uniformly (#500).
* Don't add a spurious space after "native" (#541).
* Handle parenthesized and immediately invoked functions in argument lists
like other function literals (#566).
* Preserve a blank line between an annotation and the first directive (#571).
* Fix splitting in generic methods with `=>` bodies (#584).
* Allow splitting between a parameter name and type (#585).
* Don't split after `<` when a collection is in statement position (#589).
* Force a split if the cascade target has non-obvious precedence (#590).
* Split more often if a cascade target contains a split (#591).
* Correctly report unchanged formatting when reading from stdin.
# 0.2.16
* Don't discard type arguments on method calls with closure arguments (#582).
# 0.2.15
* Support `covariant` modifier on methods.
# 0.2.14
* Update to analyzer 0.29.3. This should make dart_style a little more resilient
to breaking changes in analyzer that add support for new syntax that
dart_style can't format yet.
# 0.2.13
* Support generic method *parameters* as well as arguments.
# 0.2.12
* Add support for assert() in constructor initializers.
* Correctly indent the right-hand side of `is` and `as` expressions.
* Avoid splitting in index operators when possible.
* Support generic methods (#556).
# 0.2.11+1
* Fix test to not depend on analyzer error message.
# 0.2.11
* Widen dependency on analyzer to allow 0.29.x.
# 0.2.10
* Handle metadata annotations before parameters with trailing commas (#520).
* Always split enum declarations if they end in a trailing comma (#529).
* Add `--set-exit-if-changed` to set the exit code on a change (#365).
# 0.2.9
* Require analyzer 0.27.4, which makes trailing commas on by default.
# 0.2.8
* Format parameter lists with trailing commas like argument lists (#447).
# 0.2.7
* Make it strong mode clean.
* Put labels on their own line (#43).
* Gracefully handle IO errors when failing to overwrite a file (#473).
* Add a blank line after local functions, to match top level ones (#488).
* Improve indentation in non-block-bodied control flow statements (#494).
* Better indentation on very long return types (#503).
* When calling from JS, guess at which error to show when the code cannot be
parsed (#504).
* Force a conditional operator to split if the condition does (#506).
* Preserve trailing commas in argument and parameter lists (#509).
* Split arguments preceded by comments (#511).
* Remove newlines after script tags (#513).
* Split before a single named argument if the argument itself splits (#514).
* Indent initializers in multiple variable declarations.
* Avoid passing an invalid Windows file URI to analyzer.
* Always split comma-separated sequences that contain a trailing comma.
# 0.2.6
* Support deploying an npm package exporting a formatCode method.
# 0.2.4
* Better handling for long collections with comments (#484).
# 0.2.3
* Support messages in assert() (#411).
* Don't put spaces around magic generic method annotation comments (#477).
* Always put member metadata annotations on their own line (#483).
* Indent functions in named argument lists with non-functions (#478).
* Force the parameter list to split if a split occurs inside a function-typed
parameter.
* Don't force a split for before a single named argument if the argument itself
splits.
# 0.2.2
* Upgrade to analyzer 0.27.0.
* Format configured imports and exports.
# 0.2.1
* `--version` command line argument (#240).
* Split the first `.` in a method chain if the target splits (#255).
* Don't collapse states that differ by unbound rule constraints (#424).
* Better handling for functions in method chains (#367, #398).
* Better handling of large parameter metadata annotations (#387, #444).
* Smarter splitting around collections in named parameters (#394).
* Split calls if properties in a chain split (#399).
* Don't allow splitting inside empty functions (#404).
* Consider a rule live if it constrains a rule in the overflow line (#407).
* Allow splitting in prefix expressions (#410).
* Correctly constrain collections in argument lists (#420, #463, #465).
* Better indentation of collection literals (#421, #469).
* Only show a hidden directory once in the output (#428).
* Allow splitting between type and variable name (#429, #439, #454).
* Better indentation for binary operators in `=>` bodies (#434.
* Tweak splitting around assignment (#436, #437).
* Indent multi-line collections in default values (#441).
* Don't drop metadata on part directives (#443).
* Handle `if` statements without curly bodies better (#448).
* Handle loop statements without curly bodies better (#449).
* Allow splitting before `get` and `set` (#462).
* Add `--indent` to specify leading indent (#464).
* Ensure collection elements line split separately (#474).
* Allow redirecting constructors to wrap (#475).
* Handle index expressions in the middle of call chains.
* Optimize splitting lines with many rules.
# 0.2.0
* Treat functions nested inside function calls like block arguments (#366).
# 0.2.0-rc.4
* Smarter indentation for function arguments (#369).
# 0.2.0-rc.3
* Optimize splitting complex lines (#391).
# 0.2.0-rc.2
* Allow splitting between adjacent strings (#201).
* Force multi-line comments to the next line (#241).
* Better splitting in metadata annotations in parameter lists (#247).
* New optimized line splitter (#360, #380).
* Allow splitting after argument name (#368).
* Parsing a statement fails if there is unconsumed input (#372).
* Don't force `for` fully split if initializers or updaters do (#375, #377).
* Split before `deferred` (#381).
* Allow splitting on `as` and `is` expressions (#384).
* Support null-aware operators (`?.`, `??`, and `??=`) (#385).
* Allow splitting before default parameter values (#389).
# 0.2.0-rc.1
* **BREAKING:** The `indent` argument to `new DartFormatter()` is now a number
of *spaces*, not *indentation levels*.
* This version introduces a new n-way constraint system replacing the previous
binary constraints. It's mostly an internal change, but allows us to fix a
number of bugs that the old solver couldn't express solutions to.
In particular, it forces argument and parameter lists to go one-per-line if
they don't all fit in two lines. And it allows function and collection
literals inside expressions to indent like expressions in some contexts.
(#78, #97, #101, #123, #139, #141, #142, #143, et. al.)
* Indent cascades more deeply when the receiver is a method call (#137).
* Preserve newlines in collections containing line comments (#139).
* Allow multiple variable declarations on one line if they fit (#155).
* Prefer splitting at "." on non-identifier method targets (#161).
* Enforce a blank line before and after classes (#168).
* More precisely control newlines between declarations (#173).
* Preserve mandatory newlines in inline block comments (#178).
* Splitting inside type parameter and type argument lists (#184).
* Nest blocks deeper inside a wrapped conditional operator (#186).
* Split named arguments if the positional arguments split (#189).
* Re-indent line doc comments even if they are flush left (#192).
* Nest cascades like expressions (#200, #203, #205, #221, #236).
* Prefer splitting after `=>` over other options (#217).
* Nested non-empty collections force surrounding ones to split (#223).
* Allow splitting inside with and implements clauses (#228, #259).
* Allow splitting after `=` in a constructor initializer (#242).
* If a `=>` function's parameters split, split after the `=>` too (#250).
* Allow splitting between successive index operators (#256).
* Correctly indent wrapped constructor initializers (#257).
* Set failure exit code for malformed input when reading from stdin (#359).
* Do not nest blocks inside single-argument function and method calls.
* Do nest blocks inside `=>` functions.
# 0.1.8+2
* Allow using analyzer 0.26.0-alpha.0.
# 0.1.8+1
* Use the new `test` package runner internally.
# 0.1.8
* Update to latest `analyzer` and `args` packages.
* Allow cascades with repeated method names to be one line.
# 0.1.7
* Update to latest analyzer (#177).
* Don't discard annotations on initializing formals (#197).
* Optimize formatting deeply nested expressions (#108).
* Discard unused nesting level to improve performance (#108).
* Discard unused spans to improve performance (#108).
* Harden splits that contain too much nesting (#108).
* Try to avoid splitting single-element lists (#211).
* Avoid splitting when the first argument is a function expression (#211).
# 0.1.6
* Allow passing in selection to preserve through command line (#194).
# 0.1.5+1, 0.1.5+2, 0.1.5+3
* Fix test files to work in main Dart repo test runner.
# 0.1.5
* Change executable name from `dartformat` to `dartfmt`.
# 0.1.4
* Don't mangle comma after function-typed initializing formal (#156).
* Add `--dry-run` option to show files that need formatting (#67).
* Try to avoid splitting in before index argument (#158, #160).
* Support `await for` statements (#154).
* Don't delete commas between enum values with doc comments (#171).
* Put a space between nested unary `-` calls (#170).
* Allow `-t` flag to preserve compatibility with old formatter (#166).
* Support `--machine` flag for machine-readable output (#164).
* If no paths are provided, read source from stdin (#165).
# 0.1.3
* Split different operators with the same precedence equally (#130).
* No spaces for empty for loop clauses (#132).
* Don't touch files whose contents did not change (#127).
* Skip formatting files in hidden directories (#125).
* Don't include trailing whitespace when preserving selection (#124).
* Force constructor initialization lists to their own line if the parameter
list is split across multiple lines (#151).
* Allow splitting in index operator calls (#140).
* Handle sync* and async* syntax (#151).
* Indent the parameter list more if the body is a wrapped "=>" (#144).
# 0.1.2
* Move split conditional operators to the beginning of the next line.
# 0.1.1
* Support formatting enums (#120).
* Handle Windows line endings in multiline strings (#126).
* Increase nesting for conditional operators (#122).