2019-01-21 03:33:07 +03:00
|
|
|
<!--
|
|
|
|
|
|
|
|
Format:
|
|
|
|
|
|
|
|
- Category: Title ([#PR] by [@user])
|
|
|
|
|
|
|
|
Description
|
|
|
|
|
|
|
|
```
|
|
|
|
// Input
|
|
|
|
Code Sample
|
|
|
|
|
|
|
|
// Output (Prettier stable)
|
|
|
|
Code Sample
|
|
|
|
|
|
|
|
// Output (Prettier master)
|
|
|
|
Code Sample
|
|
|
|
```
|
|
|
|
|
|
|
|
Details:
|
|
|
|
|
|
|
|
Description: optional if the `Title` is enough to explain everything.
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
- TypeScript: Correctly handle `//` in TSX ([#5728] by [@JamesHenry])
|
|
|
|
|
|
|
|
Previously, putting `//` as a child of a JSX element in TypeScript led to an error
|
|
|
|
because it was interpreted as a comment. Prettier master fixes this issue.
|
|
|
|
|
|
|
|
<!-- prettier-ignore --\>
|
|
|
|
```js
|
|
|
|
// Input
|
|
|
|
const link = <a href="example.com">http://example.com</a>
|
|
|
|
|
|
|
|
// Output (Prettier stable)
|
|
|
|
// Error: Comment location overlaps with node location
|
|
|
|
|
|
|
|
// Output (Prettier master)
|
|
|
|
const link = <a href="example.com">http://example.com</a>;
|
|
|
|
```
|
|
|
|
|
|
|
|
-->
|
2019-04-26 20:05:57 +03:00
|
|
|
|
2019-05-04 17:18:55 +03:00
|
|
|
- Range: Fix ranged formatting not using the correct line width ([#6050] by [@mathieulj])
|
|
|
|
|
|
|
|
<!-- prettier-ignore -->
|
|
|
|
```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");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2019-04-26 20:05:57 +03:00
|
|
|
- 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.
|
|
|
|
|
|
|
|
<!-- prettier-ignore -->
|
|
|
|
```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);
|
|
|
|
```
|
2019-04-30 14:25:20 +03:00
|
|
|
|
|
|
|
- JavaScript: respect parenthesis around optional chaining before await ([#6087] by [@evilebottnawi])
|
|
|
|
|
|
|
|
<!-- prettier-ignore -->
|
|
|
|
```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;
|
|
|
|
}
|
|
|
|
```
|
2019-05-02 16:26:26 +03:00
|
|
|
|
|
|
|
- Handlebars: Fix {{else}}{{#if}} into {{else if}} merging ([#6080] by [@dcyriller])
|
|
|
|
|
|
|
|
<!-- prettier-ignore -->
|
|
|
|
```
|
|
|
|
// 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}}
|
2019-05-08 18:59:52 +03:00
|
|
|
```
|
2019-05-07 13:30:07 +03:00
|
|
|
|
2019-05-08 18:59:52 +03:00
|
|
|
- JavaScript: Improved multiline closure compiler typecast comment detection ([#6070] by [@yangsu])
|
2019-05-07 13:30:07 +03:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2019-05-08 19:09:57 +03:00
|
|
|
<!-- prettier-ignore -->
|
2019-05-07 13:30:07 +03:00
|
|
|
```js
|
|
|
|
// Input
|
|
|
|
const style =/**
|
|
|
|
* @type {{
|
|
|
|
* width: number,
|
|
|
|
* }}
|
|
|
|
*/({
|
|
|
|
width,
|
|
|
|
});
|
2019-05-08 19:09:57 +03:00
|
|
|
|
2019-05-07 13:30:07 +03:00
|
|
|
// Output (Prettier stable)
|
|
|
|
const style =/**
|
|
|
|
* @type {{
|
|
|
|
* width: number,
|
|
|
|
* }}
|
|
|
|
*/ {
|
|
|
|
width,
|
|
|
|
};
|
2019-05-08 19:09:57 +03:00
|
|
|
|
2019-05-07 13:30:07 +03:00
|
|
|
// Output (Prettier master)
|
|
|
|
const style =/**
|
|
|
|
* @type {{
|
|
|
|
* width: number,
|
|
|
|
* }}
|
|
|
|
*/({
|
|
|
|
width,
|
|
|
|
});
|
2019-05-02 16:26:26 +03:00
|
|
|
```
|
2019-05-08 19:14:55 +03:00
|
|
|
|
|
|
|
- JavaScript: Don't break simple template literals ([#5979] by [@jwbay])
|
|
|
|
|
|
|
|
<!-- prettier-ignore -->
|
|
|
|
```js
|
|
|
|
// Input
|
|
|
|
console.log(chalk.white(`Covered Lines below threshold: ${coverageSettings.lines}%. Actual: ${coverageSummary.total.lines.pct}%`))
|
|
|
|
|
|
|
|
// Output (Prettier stable)
|
|
|
|
console.log(
|
|
|
|
chalk.white(
|
|
|
|
`Covered Lines below threshold: ${coverageSettings.lines}%. Actual: ${
|
|
|
|
coverageSummary.total.lines.pct
|
|
|
|
}%`
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
// Output (Prettier master)
|
|
|
|
console.log(
|
|
|
|
chalk.white(
|
|
|
|
`Covered Lines below threshold: ${coverageSettings.lines}%. Actual: ${coverageSummary.total.lines.pct}%`
|
|
|
|
)
|
|
|
|
);
|
|
|
|
```
|