X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=CHANGELOG.md;h=416203b823a529fe85ba33b683675474c25344db;hb=ac2d5b85a57e3f0b4c9d39e7ff053f95e0e4a5a8;hp=0cf1ec7674956f365ebc07c15fb585971c2d8a9c;hpb=baa0dad5822f4e7b2aa8b6cf8d349b065e9a1491;p=rust.git diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cf1ec76749..416203b823a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,15 +2,700 @@ ## [Unreleased] +## [1.4.9] 2019-10-07 + +### Changed + +- Update `rustc-ap-*` crates to 606.0.0. + +### Fixed + +- Fix aligning comments of different group +- Fix flattening imports with a single `self`. +- Fix removing attributes on function parameters. +- Fix removing `impl` keyword from opaque type. + +## [1.4.8] 2019-09-08 + +### Changed + +- Update `rustc-ap-*` crates to 583.0.0. + +## [1.4.7] 2019-09-06 + +### Added + +- Add `--config` command line option. + +### Changed + +- Update `rustc-ap-*` crates to 581.0.0. +- rustfmt now do not warn against trailing whitespaces inside macro calls. + +### Fixed + +- Fix `merge_imports` generating invalid code. +- Fix removing discriminant values on enum variants. +- Fix modules defined inside `cfg_if!` not being formatted. +- Fix minor formatting issues. + +## [1.4.6] 2019-08-28 + +### Added + +- Add `--message-format` command line option to `cargo-fmt`. +- Add `-l,--files-with-diff` command line option to `rustfmt`. +- Add `json` emit mode. + +### Fixed + +- Fix removing attributes on struct pattern's fields. +- Fix non-idempotent formatting of match arm. +- Fix `merge_imports` generating invalid code. +- Fix imports with `#![macro_use]` getting reordered with `reorder_imports`. +- Fix calculation of line numbers in checkstyle output. +- Fix poor formatting of complex fn type. + +## [1.4.5] 2019-08-13 + +### Fixed + +- Fix generating invalid code when formatting an impl block with const generics inside a where clause. +- Fix adding a trailing space after a `dyn` keyword which is used as a macro argument by itself. + +## [1.4.4] 2019-08-06 + +### Fixed + +- Fix `cargo fmt` incorrectly formatting crates that is not part of the workspace or the path dependencies. +- Fix removing a trailing comma from a tuple pattern. + +## [1.4.3] 2019-08-02 + +### Changed + +- Update `rustc-ap-*` crates to 546.0.0. + +### Fixed + +- Fix an underscore pattern getting removed. + +## [1.4.2] 2019-07-31 + +### Changed + +- Explicitly require the version of `rustfmt-config_proc_macro` to be 0.1.2 or later. + +## [1.4.1] 2019-07-30 + +### Changed + +- Update `rustc-ap-*` crates to 542.0.0. + +## [1.4.0] 2019-07-29 + +### Added + +- Add new attribute `rustfmt::skip::attributes` to prevent rustfmt +from formatting an attribute #3665 + +### Changed + +- Update `rustc-ap-*` crates to 541.0.0. +- Remove multiple semicolons. + +## [1.3.3] 2019-07-15 + +### Added + +- Add `--manifest-path` support to `cargo fmt` (#3683). + +### Fixed + +- Fix `cargo fmt -- --help` printing nothing (#3620). +- Fix inserting an extra comma (#3677). +- Fix incorrect handling of CRLF with `file-lines` (#3684). +- Fix `print-config=minimal` option (#3687). + +## [1.3.2] 2019-07-06 + +### Fixed + +- Fix rustfmt crashing when `await!` macro call is used in a method chain. +- Fix rustfmt not recognizing a package whose name differs from its directory's name. + +## [1.3.1] 2019-06-30 + +### Added + +- Implement the `Display` trait on the types of `Config`. + +### Changed + +- `ignore` configuration option now only supports paths separated by `/`. Windows-style paths are not supported. +- Running `cargo fmt` in a sub-directory of a project is now supported. + +### Fixed + +- Fix bugs that may cause rustfmt to crash. + +## [1.3.0] 2019-06-09 + +### Added + +- Format modules defined inside `cfg_if` macro calls #3600 + +### Changed + +- Change option `format_doc_comment` to `format_code_in_doc_comment`. +- `use_small_heuristics` changed to be an enum and stabilised. Configuration + options are now ready for 1.0. +- Stabilise `fn_args_density` configuration option and rename it to `fn_args_layout` #3581 +- Update `rustc-ap-*` crates to 486.0.0 +- Ignore sub-modules when skip-children is used #3607 +- Removed bitrig support #3608 + +### Fixed + +- `wrap_comments` should not imply `format_doc_comments` #3535 +- Incorrect handling of const generics #3555 +- Add the handling for `vec!` with paren inside macro #3576 +- Format trait aliases with where clauses #3586 +- Catch panics from the parser while rewriting macro calls #3589 +- Fix erasing inner attributes in struct #3593 +- Inline the attribute with its item even with the `macro_use` attribute or when `reorder_imports` is disabled #3598 +- Fix the bug add unwanted code to impl #3602 + +## [1.2.2] 2019-04-24 + +### Fixed + +- Fix processing of `ignore` paths #3522 +- Attempt to format attributes if only they exist #3523 + +## [1.2.1] 2019-04-18 + +### Added + +- Add `--print-config current` CLI option b473e65 +- Create GitHub [page](https://rust-lang.github.io/rustfmt/) for Configuration.md #3485 + +### Fixed + +- Keep comment appearing between parameter's name and its type #3491 +- Do not delete semicolon after macro call with square brackets #3500 +- Fix `--version` CLI option #3506 +- Fix duplication of attributes on a match arm's body #3510 +- Avoid overflowing item with attributes #3511 + +## [1.2.0] 2019-03-27 + +### Added + +- Add new attribute `rustfmt::skip::macros` to prevent rustfmt from formatting a macro #3454 + +### Changed + +- Discard error report in silent_emitter #3466 + +### Fixed + +- Fix bad performance on deeply nested binary expressions #3467 +- Use BTreeMap to guarantee consistent ordering b4d4b57 + +## [1.1.1] 2019-03-21 + +### Fixed + +- Avoid panic on macro inside deeply nested block c9479de +- Fix line numbering in missed spans and handle file_lines in edge cases cdd08da +- Fix formatting of async blocks 1fa06ec +- Avoid duplication on the presence of spaces between macro name and `!` #3464 + +## [1.1.0] 2019-03-17 + +### Added + +- Add `inline_attribute_width` configuration option to write an item and its attribute on the same line if their combined width is below a threshold #3409 +- Support `const` generics f0c861b +- Support path clarity module #3448 + +### Changed + +- Align loop and while formatting 7d9a2ef +- Support `EmitMode::ModifiedLines` with stdin input #3424 +- Update `rustc-ap-*` crates to 407.0.0 +- Remove trailing whitespaces in missing spans 2d5bc69 + +### Fixed + +- Do not remove comment in the case of no arg 8e3ef3e +- Fix `Ident of macro+ident gets duplicated` error 40ff078 +- Format the if expression at the end of the block in a single line 5f3dfe6 + +## [1.0.3] 2019-02-14 + +### Added + +- Point unstable options to tracking issues 412dcc7 + +### Changed + +- Update `rustc-ap-*` crates to 373.0.0 + +## [1.0.2] 2019-02-12 + +### Added + +- Add a [section](https://github.com/rust-lang/rustfmt/blob/ae331be/Contributing.md#version-gate-formatting-changes) to the Contributing.md file about version-gating formatting changes 36e2cb0 +- Allow specifying package with `-p` CLI option a8d2591 +- Support `rustfmt::skip` on imports #3289 +- Support global `rustfmt.toml` to be written in user config directory #3280 +- Format visibility on trait alias 96a3df3 + +### Changed + +- Do not modify original source code inside macro call #3260 +- Recognize strings inside comments in order to avoid indenting them baa62c6 +- Use Unicode-standard char width to wrap comments or strings a01990c +- Change new line point in the case of no args #3294 +- Use the same formatting rule between functions and macros #3298 +- Update rustc-ap-rustc_target to 366.0.0, rustc-ap-syntax to 366.0.0, and rustc-ap-syntax_pos to 366.0.0 + +### Fixed + +- rewrite_comment: fix block fallback when failing to rewrite an itemized block ab7f4e1 +- Catch possible tokenizer panics #3240 +- Fix macro indentation on Windows #3266 +- Fix shape when formatting return or break expr on statement position #3259 +- rewrite_comment: fix block fallback when failing to rewrite an itemized block +- Keep leading double-colon to respect the 2018 edition of rust's paths a2bfc02 +- Fix glob and nested global imports 2125ad2 +- Do not force trailing comma when using mixed layout #3306 +- Prioritize `single_line_fn` and `empty_item_single_line` over `brace_style` #3308 +- Fix `internal error: left behind trailing whitespace` with long lines c2534f5 +- Fix attribute duplication #3325 +- Fix formatting of strings within a macro 813aa79 +- Handle a macro argument with a single keyword 9a7ea6a + +## [1.0.1] 2018-12-09 + +### Added + +- Add a `version` option 378994b + +### Changed + +- End expressions like return/continue/break with a semicolon #3223 +- Update rustc-ap-rustc_target to 306.0.0, rustc-ap-syntax to 306.0.0, and rustc-ap-syntax_pos to 306.0.0 + +### Fixed + +- Allow to run a rustfmt command from cargo-fmt even when there is no target a2da636 +- Fix `un-closed delimiter` errors when formatting break labels 40174e9 + +## [1.0.0] 2018-11-19 + +### Changed + +- Preserve possibly one whitespace for brace macros 1a3bc79 +- Prefer to break arguments over putting output type on the next line 1dd54e6 + +## [0.99.9] 2018-11-15 + +### Changed + +- Update rustc-ap-rustc_target to 297.0.0, rustc-ap-syntax to 297.0.0, to rustc-ap-syntax_pos to 297.0.0 +- Don't align comments on `extern crate`s dd7add7 + +## [0.99.8] 2018-11-14 + +### Added + +- Add `overflow_delimited_expr` config option to more aggressively allow overflow #3175 + +### Fixed + +- Fix the logic for retaining a comment before the arrow in a match #3181 +- Do not wrap comments in doctest to avoid failing doctest runs #3183 +- Fix comment rewriting that was wrapping code into a line comment #3188 +- Fix formatting of unit-struct with `where`-clause #3200 + +## [0.99.7] 2018-11-07 + +### Changed + +- Force a newline after the `if` condition if there is a different indentation level #3109 +- Use correct width when formatting type on local statement #3126 +- Treat crates non-alphabetically when ordering 799005f +- Fix formatting of code that is annotated with rustfmt::skip #3113 +- Stabilize `edition` configuration option 9c3ae2d +- cargo-fmt: detect Rust edition in use #3129 +- Trim the indentation on macros which heuristically appear to use block-style indentation #3178 + +### Fixed + +- Do not remove path disambiugator inside macro #3142 +- Improve handling of Windows newlines #3141 +- Fix alignment of a struct's fields (`struct_field_align_threshold` option) with the Visual `indent_style` #3165 +- Fix a bug in formatting markdown lists within comments #3172 + +## [0.99.6] 2018-10-18 + +### Added + +- Add `enum_discrim_align_threshold` option to vertically align enum discriminants cc22869 +- Add `println!`-like heuristic to the `fail` attribute #3067 +- Handle itemized items inside comments #3083 +- Add `format_doc_comments` configuration option to control the formatting of code snippets inside comments #3089 + +### Changed + +- Makes brace behavior consistent with empty bodies for traits and impls 2727d41 +- Consider a multi-lined array as a block-like expression #3969 +- Improve formatting of strings #3073 +- Get rid of extra commas in Visual struct literal formatting #3077 +- Update rustc-ap-rustc_target to 274.0.0, rustc-ap-syntax to 274.0.0, and rustc-ap-syntax_pos to 274.0.0 +- Format macro calls with item-like arguments #3080 +- Avoid control flow expressions conditions to go multi line ef59b34 +- Simplify multi-lining binop expressions #3101 + +### Fixed + +- Do not format a code block in documentation if it is annotated with ignore or text 2bcc3a9 +- Fix inconsistent overflow behavior in Visual style #3078 +- Fix corner cases of the string formatting implementation #3083 +- Do not add parens around lifetimes 0ac68c9 +- Catch parser panic in format_snippet 8c4e92a + +## [0.99.5] 2018-09-25 + +### Added + +- Handle leading module separator for 2018 Edition #2952 +- Add configuration option `normalize_doc_attributes`: convert doc attributes to comments #3002 + +### Changed + +- Accept 2015 and 2018 instead of Edition2015 and Edition2018 for edition option eec7436 +- Support platforms without a timer 46e2a2e +- Update rustc-ap-rustc_target to 263.0.0, rustc-ap-syntax to 263.0.0, and rustc-ap-syntax_pos to 263.0.0 + +### Fixed + +- Format of attributes with commas #2971 +- Fix optional arg condensing #2972 +- Improve formatting of long function parameters #2981 +- Fix formatting of raw string literals #2983 +- Handle chain with try operators with spaces #2986 +- Use correct shape in Visual tuple rewriting #2987 +- Impove formatting of arguments with `visual_style = "Visual"` option #2988 +- Change `print_diff` to output the correct line number 992b179 +- Propagate errors about failing to rewrite a macro 6f318e3 +- Handle formatting of long function signature #3010 +- Fix indent computation of a macro with braces c3edf6d +- Format generics on associated types #3035 +- Incorrect indentation of multiline block match expression #3042 +- Fix bug in import where two consecutive module separators were possible 98a0ef2 +- Prevent right-shifting of block comments with bare lines 5fdb6db + +## [0.99.4] 2018-08-27 + +### Added + +- Handle formatting of underscore imports #2951 +- Handle formatting of try blocks #2965 + +### Changed + +- Update rustc-ap-rustc_target to 237.0.0, rustc-ap-syntax to 237.0.0, and rustc-ap-syntax_pos to 237.0.0 ca19c9a +- Consider `dev` channel as nightly for unstable features #2948 + +### Fixed + +- Fix formatting of patterns with ellipsis # 2942 + +## [0.99.3] 2018-08-23 + +### Added + +- Use path attribute when searching for modules #2901 +- Expose FileLines JSON representation to allow external libraries to use the file_lines option #2915 + +### Changed + +- Replace '--conifig-help' with '--config=help' cb10e06 +- Improve formatting of slice patterns #2912 + +### Fixed + +- Format chains with comment #2899 +- Fix indentation of formatted macro body #2920 +- Fix indentation of block comments f23e6aa + +## [0.99.2] 2018-08-07 + +### Changed + +- Update rustc-ap-rustc_target to 218.0.0, rustc-ap-syntax to 218.0.0, and rustc-ap-syntax_pos to 218.0.0 5c9a2b6 +- Combine function-like attributes #2900 + +### Fixed + +- Explicitly handle semicolon after the item in statement position d96e3ca +- Fix parsing '#'-hiding of rustdoc 2eca09e + +## [0.99.1] 2018-08-04 + +### Fixed + +- fix use statements ordering when a number is present 1928ae7 + +## [0.99.0] 2018-08-03 + +- 1.0 RC release + +### Changed + +- Clarification in README.md 30fe66b + +## [0.9.0] 2018-08-01 + +### Added + +- Handle raw identifiers 3027c21 +- Format async closure 60ce411 +- Add max_width option for all heuristics c2ae39e +- Add config option `format_macro_matchers` to format the metavariable matching patterns in macros 79c5ee8 +- Add config option `format_macro_bodies` to format the bodies of macros 79c5ee8 +- Format exitential type fc307ff +- Support raw identifiers in struct expressions f121b1a +- Format Async block and async function 0b25f60 + +### Changed + +- Update rustc-ap-rustc_target to 211.0.0, rustc-ap-syntax to 211.0.0, and rustc-ap-syntax_pos to 211.0.0 +- Put each nested import on its own line while putting non-nested imports on the same line as much as possible 42ab258 +- Respect `empty_item_single_line` config option when formatting empty impls. Put the `where` on its own line to improve readability #2771 +- Strip leading `|` in match arm patterns 1d4b988 +- Apply short function call heuristic to attributes 3abebf9 +- Indent a match guard if the pattern is multiline be4d37d +- Change default newline style to `Native` 9d8f381 +- Improve formatting of series of binop expressions a4cdb68 +- Trigger an internal error if we skip formatting due to a lost comment b085113 +- Refactor chain formatting #2838 + +### Fixed + +- Do not insert spaces around braces with empty body or multiple lines 2f65852 +- Allow using mixed layout with comments #2766 +- Handle break labels #2726 +- fix rewrite_string when a line feed is present 472a2ed +- Fix an anomaly with comments and array literals b28a0cd +- Check for comments after the `=>` in a match arm 6899471 + +## [0.8.0,0.8.1,0.8.2] 2018-05-28 + +### Added + +- Use scoped attributes for skip attribute https://github.com/rust-lang/rustfmt/pull/2703 + +### Changed + +- Comment options `wrap_comments` and `normalize_comments` are reverted back to unstable 416bc4c +- Stabilise `reorder_imports` and `reorder_modules` options 7b6d2b4 +- Remove `spaces_within_parens_and_brackets` option d726492 +- Stabilise shorthand options: `use_try_shorthand`, `use_field_init_shorthand`, and `force_explicit_abi` 8afe367 +- Stabilise `remove_nested_parens` and set default to true a70f716 +- Unstabilise `unstable_features` dd9c15a +- Remove `remove_blank_lines_at_start_or_end_of_block` option 2ee8b0e +- Update rustc-ap-syntax to 146.0.0 and rustc-ap-rustc_target to 146.0.0 2c275a2 +- Audit the public API #2639 + +### Fixed + +- Handle code block in doc comment without rust prefix f1974e2 + +## [0.7.0] 2018-05-14 + +### Added + +- Add integration tests against crates in the rust-lang-nursery c79f39a + +### Changed + +- Update rustc-ap-syntax to 128.0.0 and ustc-ap-rustc_target to 128.0.0 195395f +- Put operands on its own line when each fits in a single line f8439ce +- Improve CLI options 55ac062 1869888 798bffb 4d9de48 eca7796 8396da1 5d9f5aa + +### Fixed + +- Use correct line width for list attribute 61a401a +- Avoid flip-flopping impl items when reordering them 37c216c +- Formatting breaks short lines when max_width is less than 100 9b36156 +- Fix variant "Mixed" of imports_layout option 8c8676c +- Improve handling of long lines f885039 +- Fix up lines exceeding max width 51c07f4 +- Fix handling of modules in non_modrs_mods style cf573e8 +- Do not duplicate attributes on use items e59ceaf +- Do not insert an extra brace in macros with native newlines 4c9ef93 + +## [0.6.1] 2018-05-01 + +### Changed + +- Change the default value of imports_indent to IndentStyle::Block https://github.com/rust-lang/rustfmt/pull/2662 + +### Fixed + +- Handle formatting of auto traits 5b5a72c +- Use consistent formatting for empty enum and struct https://github.com/rust-lang/rustfmt/pull/2656 + +## [0.6.0] 2018-04-20 + +### Changed + +- Improve public API 8669004 + +## [0.5.0] 2018-04-20 + +### Added + +- Add `verbose-diff` CLI option 5194984 + +### Changed + +- Update rustc-ap-syntax to 103.0.0 dd807e2 +- Refactor to make a sensible public API ca610d3 + +### Fixed + +- Add spaces between consecutive `..` `..=` 61d29eb + +## [0.4.2] 2018-04-12 + +### Added + +- Handle binary operators and lifetimes 0fd174d +- Add reorder_impl_items config option 94f5a05 +- Add `--unstable-features` CLI option to list unstable options from the `--help` output 8208f8a +- Add merge_imports config option 5dd203e + +### Changed + +- Format macro arguments with vertical layout ec71459 +- Reorder imports by default 164cf7d +- Do not collapse block around expr with condition on match arm 5b9b7d5 +- Use vertical layout for complex attributes c77708f +- Format array using heuristics for function calls 98c6f7b +- Implement stable ordering for impl items with the the following item priority: type, const, macro, then method fa80ddf +- Reorder imports by default 164cf7d +- Group `extern crate` by default 3a138a2 +- Make `error_on_line_overflow` false by default f146711 +- Merge imports with the same prefix into a single nested import 1954513 +- Squash the various 'reorder imports' option into one 911395a + +### Fixed + +- Print version is missing the channel ca6fc67 +- Do not add the beginning vert to the match arm 1e1d9d4 +- Follow indent style config when formatting attributes efd295a +- Do not insert newline when item is empty a8022f3 +- Do not indent or unindent inside string literal ec1907b + +## [0.4.1] 2018-03-16 + +### Added + +- Add `ignore` configuration option. +- Add `license_template_path` configuration option. +- Format `lazy_static!`. + +### Fixed + +- Fix formatting bugs. +- Fix setting `reorder_modules` removing inline modules. +- Format attributes on block expressions. +- Support `dyn trait` syntax. +- Support multiple patterns in `if let` and `while let`. +- Support a pattern with parentheses. + +## [0.4.0] 2018-03-02 + +### Changed + +- Do not print verbose outputs when formatting with stdin. +- Preserve trailing whitespaces in doc comments. +- Scale the values of width heuristics by `max_width`. + +### Fixed + +- Do not reorder items with `#[macro_use]`. +- Fix formatting bugs. +- Support the beginning `|` on a match arm. + +## [0.3.8] 2018-02-04 + +### Added + +- Format (or at least try to format) `macro_rules!`. + +## [0.3.7] 2018-02-01 + +### Added + +- Add `use_field_init_shorthand` config option. +- Add `reorder_modules` configuration option. + +## [0.3.6] 2018-01-18 + +### Fixed + +- Fix panicking on formatting certain macros (#2371). + +## [0.3.5] 2018-01-15 + +### Changed + +- Format code block in comments when `wrap_comments` is set to `true`. +- Remove `same_line_attributes` configuration option. +- Rename `git-fmt` to `git-rustfmt`. + +### Fixed + +- Rustup to `rustc 1.25.0-nightly (e6072a7b3 2018-01-13)`. +- Fix formatting bugs. + +## [0.3.4] 2017-12-23 + +### Added + +- Add `--version` flag to `cargo-fmt`, allow `cargo fmt --version`. + +### Fixed + +- Rustup to `rustc 1.24.0-nightly (5165ee9e2 2017-12-22)`. + +## [0.3.3] 2017-12-22 + +### Added + +- Format trait aliases. + ### Changed - `cargo fmt` will format every workspace member. +### Fixed + +- Rustup to `rustc 1.24.0-nightly (250b49205 2017-12-21)` +- Fix formatting bugs. + ## [0.3.2] 2017-12-15 ### Changed -- Warn when unkown configuration option is used. +- Warn when unknown configuration option is used. ### Fixed