diff --git a/CHANGELOG.md b/CHANGELOG.md index 47208a60f..2c575eccb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,164 @@ +# 1.17.1 + +[diff](https://github.com/prettier/prettier/compare/1.17.0...1.17.1) + +- Range: Fix ranged formatting not using the correct line width ([#6050] by [@mathieulj]) + + + ```js + // Input + function f() { + if (true) { + call("this line is 79 chars", "long", "it should", "stay as single line"); + } + } + + // Output (Prettier stable run with --range-start 30 --range-end 110) + function f() { + if (true) { + call( + "this line is 79 chars", + "long", + "it should", + "stay as single line" + ); + } + } + + // Output (Prettier stable run without range) + function f() { + if (true) { + call("this line is 79 chars", "long", "it should", "stay as single line"); + } + } + + // Output (Prettier master with and without range) + function f() { + if (true) { + call("this line is 79 chars", "long", "it should", "stay as single line"); + } + } + ``` + +- JavaScript: Fix closure compiler typecasts ([#5947] by [@jridgewell]) + + If a closing parenthesis follows after a typecast in an inner expression, the typecast would wrap everything to the that following parenthesis. + + + ```js + // Input + test(/** @type {!Array} */(arrOrString).length); + test(/** @type {!Array} */((arrOrString)).length + 1); + + // Output (Prettier stable) + test(/** @type {!Array} */ (arrOrString.length)); + test(/** @type {!Array} */ (arrOrString.length + 1)); + + // Output (Prettier master) + test(/** @type {!Array} */ (arrOrString).length); + test(/** @type {!Array} */ (arrOrString).length + 1); + ``` + +- JavaScript: respect parenthesis around optional chaining before await ([#6087] by [@evilebottnawi]) + + + ```js + // Input + async function myFunction() { + var x = (await foo.bar.blah)?.hi; + } + + // Output (Prettier stable) + async function myFunction() { + var x = await foo.bar.blah?.hi; + } + + // Output (Prettier master) + async function myFunction() { + var x = (await foo.bar.blah)?.hi; + } + ``` + +- Handlebars: Fix {{else}}{{#if}} into {{else if}} merging ([#6080] by [@dcyriller]) + + + ``` + // Input + {{#if a}} + a + {{else}} + {{#if c}} + c + {{/if}} + e + {{/if}} + + // Output (Prettier stable) + {{#if a}} + a + {{else if c}} + c + e + {{/if}} + + // Output (Prettier master) + Code Sample + {{#if a}} + a + {{else}} + {{#if c}} + c + {{/if}} + e + {{/if}} + ``` + +- JavaScript: Improved multiline closure compiler typecast comment detection ([#6070] by [@yangsu]) + + Previously, multiline closure compiler typecast comments with lines that + start with \* weren't flagged correctly and the subsequent parenthesis were + stripped. Prettier master fixes this issue. + + + ```js + // Input + const style =/** + * @type {{ + * width: number, + * }} + */({ + width, + }); + + // Output (Prettier stable) + const style =/** + * @type {{ + * width: number, + * }} + */ { + width, + }; + + // Output (Prettier master) + const style =/** + * @type {{ + * width: number, + * }} + */({ + width, + }); + ``` + +[@mathieulj]: https://github.com/mathieulj +[@yangsu]: https://github.com/yangsu +[@dcyriller]: https://github.com/dcyriller +[@jridgewell]: https://github.com/jridgewell +[@evilebottnawi]: https://github.com/evilebottnawi +[#6050]: https://github.com/prettier/prettier/pull/6050 +[#6070]: https://github.com/prettier/prettier/pull/6070 +[#6080]: https://github.com/prettier/prettier/pull/6080 +[#6087]: https://github.com/prettier/prettier/pull/6087 + # 1.17.0 [diff](https://github.com/prettier/prettier/compare/1.16.2...1.17.0) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 7860b30cf..7b5a8f5be 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -41,150 +41,3 @@ Examples: ``` --> - -- Range: Fix ranged formatting not using the correct line width ([#6050] by [@mathieulj]) - - - ```js - // Input - function f() { - if (true) { - call("this line is 79 chars", "long", "it should", "stay as single line"); - } - } - - // Output (Prettier stable run with --range-start 30 --range-end 110) - function f() { - if (true) { - call( - "this line is 79 chars", - "long", - "it should", - "stay as single line" - ); - } - } - - // Output (Prettier stable run without range) - function f() { - if (true) { - call("this line is 79 chars", "long", "it should", "stay as single line"); - } - } - - // Output (Prettier master with and without range) - function f() { - if (true) { - call("this line is 79 chars", "long", "it should", "stay as single line"); - } - } - ``` - -- JavaScript: Fix closure compiler typecasts ([#5947] by [@jridgewell]) - - If a closing parenthesis follows after a typecast in an inner expression, the typecast would wrap everything to the that following parenthesis. - - - ```js - // Input - test(/** @type {!Array} */(arrOrString).length); - test(/** @type {!Array} */((arrOrString)).length + 1); - - // Output (Prettier stable) - test(/** @type {!Array} */ (arrOrString.length)); - test(/** @type {!Array} */ (arrOrString.length + 1)); - - // Output (Prettier master) - test(/** @type {!Array} */ (arrOrString).length); - test(/** @type {!Array} */ (arrOrString).length + 1); - ``` - -- JavaScript: respect parenthesis around optional chaining before await ([#6087] by [@evilebottnawi]) - - - ```js - // Input - async function myFunction() { - var x = (await foo.bar.blah)?.hi; - } - - // Output (Prettier stable) - async function myFunction() { - var x = await foo.bar.blah?.hi; - } - - // Output (Prettier master) - async function myFunction() { - var x = (await foo.bar.blah)?.hi; - } - ``` - -- Handlebars: Fix {{else}}{{#if}} into {{else if}} merging ([#6080] by [@dcyriller]) - - - ``` - // Input - {{#if a}} - a - {{else}} - {{#if c}} - c - {{/if}} - e - {{/if}} - - // Output (Prettier stable) - {{#if a}} - a - {{else if c}} - c - e - {{/if}} - - // Output (Prettier master) - Code Sample - {{#if a}} - a - {{else}} - {{#if c}} - c - {{/if}} - e - {{/if}} - ``` - -- JavaScript: Improved multiline closure compiler typecast comment detection ([#6070] by [@yangsu]) - - Previously, multiline closure compiler typecast comments with lines that - start with \* weren't flagged correctly and the subsequent parenthesis were - stripped. Prettier master fixes this issue. - - - ```js - // Input - const style =/** - * @type {{ - * width: number, - * }} - */({ - width, - }); - - // Output (Prettier stable) - const style =/** - * @type {{ - * width: number, - * }} - */ { - width, - }; - - // Output (Prettier master) - const style =/** - * @type {{ - * width: number, - * }} - */({ - width, - }); - ``` diff --git a/package.json b/package.json index 60b2a2f35..8592042f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "prettier", - "version": "1.18.0-dev", + "version": "1.17.1", "description": "Prettier is an opinionated code formatter", "bin": { "prettier": "./bin/prettier.js"