Changelog
1.18.1
TypeScript: Add trailing comma in tsx, only for arrow function ([#6190] by [@sosukesuzuki])
Prettier inserts a trailing comma to single type parameter for arrow functions in tsx, since v 1.18. But, this feature inserts a trailing comma to type parameter for besides arrow functions too (e.g, function , interface). This change fix it.
<!-- prettier-ignore -->// Input
interface Interface1<T> {
one: "one";
}
function function1<T>() {
return "one";
}
// Output (Prettier 1.18.0)
interface Interface1<T,> {
one: "one";
}
function function1<T,>() {
return "one";
}
// Output (Prettier 1.18.1)
interface Interface1<T> {
one: "one";
}
function function1<T>() {
return "one";
}
Config: Match dotfiles in config overrides ([#6194] by [@duailibe])
When using overrides
in the config file, Prettier was not matching dotfiles (files that start with .
). This was fixed in 1.18.1
Changelog
1.17.1
Range: Fix ranged formatting not using the correct line width ([#6050] by [@mathieulj])
<!-- prettier-ignore -->// Input
function f() {
if (true) {
call("this line is 79 chars", "long", "it should", "stay as single line");
}
}
// Output (Prettier 1.17.0 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 1.17.0 run without range)
function f() {
if (true) {
call("this line is 79 chars", "long", "it should", "stay as single line");
}
}
// Output (Prettier 1.17.1 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.
<!-- prettier-ignore -->// Input
test(/** @type {!Array} */(arrOrString).length);
test(/** @type {!Array} */((arrOrString)).length + 1);
// Output (Prettier 1.17.0)
test(/** @type {!Array} */ (arrOrString.length));
test(/** @type {!Array} */ (arrOrString.length + 1));
// Output (Prettier 1.17.1)
test(/** @type {!Array} */ (arrOrString).length);
test(/** @type {!Array} */ (arrOrString).length + 1);
JavaScript: respect parenthesis around optional chaining before await ([#6087] by [@evilebottnawi])
<!-- prettier-ignore -->// Input
async function myFunction() {
var x = (await foo.bar.blah)?.hi;
}
// Output (Prettier 1.17.0)
async function myFunction() {
var x = await foo.bar.blah?.hi;
}
// Output (Prettier 1.17.1)
async function myFunction() {
var x = (await foo.bar.blah)?.hi;
}
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 1.17.0)
{{#if a}}
a
{{else if c}}
c
e
{{/if}}
// Output (Prettier 1.17.1)
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 1.17.1 fixes this issue.
<!-- prettier-ignore -->// Input
const style =/**
* @type {{
* width: number,
* }}
*/({
width,
});
// Output (Prettier 1.17.0)
const style =/**
* @type {{
* width: number,
* }}
*/ {
width,
};
// Output (Prettier 1.17.1)
const style =/**
* @type {{
* width: number,
* }}
*/({
width,
});
Changelog
1.16.4
API: Fix prettier.getSupportInfo()
reporting babel parser for older versions of Prettier. ([#5826] by [@azz])
In version 1.16.0
of Prettier, the babylon
parser was renamed to babel
. Unfortunately this lead to a minor breaking change: prettier.getSupportInfo('1.15.0')
would report that it supported babel
, not babylon
, which breaks text-editor integrations. This has now been fixed.