Break after equal on assignment if rhs is await/yield expression (#15204)
* add as-is test * break after equal on assignment if rhs is wait Discussion: #15196 * rename test file * add as-is test * treat YieldExpression * add tests * add changelog * fix a bug * add test for delegated yield
This commit is contained in:
1 parent
892a1cfba6
commit
bf0b3040be
4 files changed
+147
-1
No files matched your search
@@ -0,0 +1,16 @@
|
||||
#### Break after `=` of assignment if RHS is poorly breakable AwaitExpression or YieldExpression (#15204 by @seiyab)
|
||||
|
||||
<!-- prettier-ignore -->
|
||||
```js
|
||||
// Input
|
||||
const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData);
|
||||
|
||||
// Prettier stable
|
||||
const { section, rubric, authors, tags } = await utils.upsertCommonData(
|
||||
mainData,
|
||||
);
|
||||
|
||||
// Prettier main
|
||||
const { section, rubric, authors, tags } =
|
||||
await utils.upsertCommonData(mainData);
|
||||
```
|
||||
@@ -205,7 +205,11 @@ function shouldBreakAfterOperator(path, options, print, hasShortKey) {
|
||||
let node = rightNode;
|
||||
const propertiesForPath = [];
|
||||
for (;;) {
|
||||
if (node.type === "UnaryExpression") {
|
||||
if (
|
||||
node.type === "UnaryExpression" ||
|
||||
node.type === "AwaitExpression" ||
|
||||
(node.type === "YieldExpression" && node.argument !== null)
|
||||
) {
|
||||
node = node.argument;
|
||||
propertiesForPath.push("argument");
|
||||
} else if (node.type === "TSNonNullExpression") {
|
||||
|
||||
@@ -278,6 +278,104 @@ printWidth: 80
|
||||
================================================================================
|
||||
`;
|
||||
|
||||
exports[`discussion-15196.js format 1`] = `
|
||||
====================================options=====================================
|
||||
parsers: ["babel", "flow", "typescript"]
|
||||
printWidth: 80
|
||||
| printWidth
|
||||
=====================================input======================================
|
||||
async function f() {
|
||||
const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData);
|
||||
|
||||
const loooooooooooooooooooooooooong1 = await looooooooooooooong.looooooooooooooong.loooooong;
|
||||
const loooooooooooooooooooooooooong2 = await looooooooooooooong.looooooooooooooong.loooooong();
|
||||
const loooooooooooooooooooooooooong3 = await looooooooooooooooooooooooooooooooooooooooooooog();
|
||||
const loooooooooooooooooooooooooong4 = !await looooooooooooooong.looooooooooooooong.loooooong;
|
||||
const loooooooooooooooooooooooooong5 = void !!await looooooooooooooong.looooooooooooooong.loooooong;
|
||||
|
||||
const longlonglonglonglonglonglong1 = await new Promise((resolve, reject) => { setTimeout(() => { resolve('foo'); }, 300); })
|
||||
const longlonglonglonglonglonglong2 = await { then(onFulfilled, onRejected) { onFulfilled(1234567890) } };
|
||||
}
|
||||
|
||||
function* g() {
|
||||
const { section, rubric, authors, tags } = yield utils.upsertCommonData(mainData);
|
||||
|
||||
const loooooooooooooooooooooooooong1 = yield looooooooooooooong.looooooooooooooong.loooooong;
|
||||
const loooooooooooooooooooooooooong2 = yield looooooooooooooong.looooooooooooooong.loooooong();
|
||||
const loooooooooooooooooooooooooong3 = yield looooooooooooooooooooooooooooooooooooooooooooog();
|
||||
const loooooooooooooooooooooooooong4 = !(yield looooooooooooooong.looooooooooooooong.loooooong);
|
||||
const loooooooooooooooooooooooooong5 = void !!(yield looooooooooooooong.looooooooooooooong.loooooong);
|
||||
const loooooooooooooooooooooooooong6 = yield* looooooooooooooong.looooooooooooooong.loooooong;
|
||||
|
||||
const longlonglonglonglonglonglong1 = yield qwertyuiop(asdfghjkl, zxcvbnm, qwertyuiop, asdfghjkl);
|
||||
const longlonglonglonglonglonglong2 = yield { qwertyuiop: 1234567890, asdfghjkl: 1234567890, zxcvbnm: 123456789 };
|
||||
|
||||
const x = yield;
|
||||
}
|
||||
|
||||
=====================================output=====================================
|
||||
async function f() {
|
||||
const { section, rubric, authors, tags } =
|
||||
await utils.upsertCommonData(mainData);
|
||||
|
||||
const loooooooooooooooooooooooooong1 =
|
||||
await looooooooooooooong.looooooooooooooong.loooooong;
|
||||
const loooooooooooooooooooooooooong2 =
|
||||
await looooooooooooooong.looooooooooooooong.loooooong();
|
||||
const loooooooooooooooooooooooooong3 =
|
||||
await looooooooooooooooooooooooooooooooooooooooooooog();
|
||||
const loooooooooooooooooooooooooong4 =
|
||||
!(await looooooooooooooong.looooooooooooooong.loooooong);
|
||||
const loooooooooooooooooooooooooong5 =
|
||||
void !!(await looooooooooooooong.looooooooooooooong.loooooong);
|
||||
|
||||
const longlonglonglonglonglonglong1 = await new Promise((resolve, reject) => {
|
||||
setTimeout(() => {
|
||||
resolve("foo");
|
||||
}, 300);
|
||||
});
|
||||
const longlonglonglonglonglonglong2 = await {
|
||||
then(onFulfilled, onRejected) {
|
||||
onFulfilled(1234567890);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function* g() {
|
||||
const { section, rubric, authors, tags } =
|
||||
yield utils.upsertCommonData(mainData);
|
||||
|
||||
const loooooooooooooooooooooooooong1 =
|
||||
yield looooooooooooooong.looooooooooooooong.loooooong;
|
||||
const loooooooooooooooooooooooooong2 =
|
||||
yield looooooooooooooong.looooooooooooooong.loooooong();
|
||||
const loooooooooooooooooooooooooong3 =
|
||||
yield looooooooooooooooooooooooooooooooooooooooooooog();
|
||||
const loooooooooooooooooooooooooong4 =
|
||||
!(yield looooooooooooooong.looooooooooooooong.loooooong);
|
||||
const loooooooooooooooooooooooooong5 =
|
||||
void !!(yield looooooooooooooong.looooooooooooooong.loooooong);
|
||||
const loooooooooooooooooooooooooong6 =
|
||||
yield* looooooooooooooong.looooooooooooooong.loooooong;
|
||||
|
||||
const longlonglonglonglonglonglong1 = yield qwertyuiop(
|
||||
asdfghjkl,
|
||||
zxcvbnm,
|
||||
qwertyuiop,
|
||||
asdfghjkl,
|
||||
);
|
||||
const longlonglonglonglonglonglong2 = yield {
|
||||
qwertyuiop: 1234567890,
|
||||
asdfghjkl: 1234567890,
|
||||
zxcvbnm: 123456789,
|
||||
};
|
||||
|
||||
const x = yield;
|
||||
}
|
||||
|
||||
================================================================================
|
||||
`;
|
||||
|
||||
exports[`issue-1419.js format 1`] = `
|
||||
====================================options=====================================
|
||||
parsers: ["babel", "flow", "typescript"]
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
async function f() {
|
||||
const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData);
|
||||
|
||||
const loooooooooooooooooooooooooong1 = await looooooooooooooong.looooooooooooooong.loooooong;
|
||||
const loooooooooooooooooooooooooong2 = await looooooooooooooong.looooooooooooooong.loooooong();
|
||||
const loooooooooooooooooooooooooong3 = await looooooooooooooooooooooooooooooooooooooooooooog();
|
||||
const loooooooooooooooooooooooooong4 = !await looooooooooooooong.looooooooooooooong.loooooong;
|
||||
const loooooooooooooooooooooooooong5 = void !!await looooooooooooooong.looooooooooooooong.loooooong;
|
||||
|
||||
const longlonglonglonglonglonglong1 = await new Promise((resolve, reject) => { setTimeout(() => { resolve('foo'); }, 300); })
|
||||
const longlonglonglonglonglonglong2 = await { then(onFulfilled, onRejected) { onFulfilled(1234567890) } };
|
||||
}
|
||||
|
||||
function* g() {
|
||||
const { section, rubric, authors, tags } = yield utils.upsertCommonData(mainData);
|
||||
|
||||
const loooooooooooooooooooooooooong1 = yield looooooooooooooong.looooooooooooooong.loooooong;
|
||||
const loooooooooooooooooooooooooong2 = yield looooooooooooooong.looooooooooooooong.loooooong();
|
||||
const loooooooooooooooooooooooooong3 = yield looooooooooooooooooooooooooooooooooooooooooooog();
|
||||
const loooooooooooooooooooooooooong4 = !(yield looooooooooooooong.looooooooooooooong.loooooong);
|
||||
const loooooooooooooooooooooooooong5 = void !!(yield looooooooooooooong.looooooooooooooong.loooooong);
|
||||
const loooooooooooooooooooooooooong6 = yield* looooooooooooooong.looooooooooooooong.loooooong;
|
||||
|
||||
const longlonglonglonglonglonglong1 = yield qwertyuiop(asdfghjkl, zxcvbnm, qwertyuiop, asdfghjkl);
|
||||
const longlonglonglonglonglonglong2 = yield { qwertyuiop: 1234567890, asdfghjkl: 1234567890, zxcvbnm: 123456789 };
|
||||
|
||||
const x = yield;
|
||||
}
|
||||
Reference in new issue
Block a user