Skip to content

Commit

Permalink
Remove parent check, add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Shand committed Aug 9, 2021
1 parent fbb67e6 commit 7931e42
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 14 deletions.
2 changes: 1 addition & 1 deletion src/language-js/print/binaryish.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ function printBinaryishExpression(path, options, print) {
(isCallExpression(parent) && parent.callee === node) ||
parent.type === "UnaryExpression" ||
(isMemberExpression(parent) && !parent.computed) ||
parent.type === "LogicalExpression" && needsParens(path, options)
needsParens(path, options)
) {
return group([indent([softline, ...parts]), softline]);
}
Expand Down
14 changes: 8 additions & 6 deletions tests/format/angular/angular/__snapshots__/jsfmt.spec.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -3528,12 +3528,14 @@ printWidth: 1
| translate
: {
what:
("entities"
| translate
: {
count:
array.length
})
(
"entities"
| translate
: {
count:
array.length
}
)
}
}}
</p>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,93 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`indent_multiline.js format 1`] = `
====================================options=====================================
parsers: ["babel", "flow", "typescript"]
printWidth: 80
| printWidth
=====================================input======================================
// Indent multiline logical expressions used as function arguments
foo(long_long_long_long_long_long_long_condition_1 &&
long_long_long_long_long_long_long_varaible_2);
foo(long_long_long_long_long_long_long_condition_1 ||
long_long_long_long_long_long_long_varaible_2);
foo(long_long_long_long_long_long_long_condition_1 ??
long_long_long_long_long_long_long_varaible_2);
// Indent multiline logical sub expressions
long_long_long_long_long_long_long_condition_1 ||
(long_long_long_long_long_long_long_condition_2 &&
long_long_long_long_long_long_long_condition_3);
long_long_long_long_long_long_long_condition_1 &&
(long_long_long_long_long_long_long_condition_2 ||
long_long_long_long_long_long_long_condition_3);
long_long_long_long_long_long_long_condition_1 ||
(long_long_long_long_long_long_long_condition_2 ??
long_long_long_long_long_long_long_condition_3);
// Indent multiline logical expressions with a binary expression parent
num_x *
(long_long_long_long_long_long_long_condition_2 &&
long_long_long_long_long_long_long_condition_3);
num_x *
(long_long_long_long_long_long_long_condition_2 ||
long_long_long_long_long_long_long_condition_3);
num_x *
(long_long_long_long_long_long_long_condition_2 ??
long_long_long_long_long_long_long_condition_3);
=====================================output=====================================
// Indent multiline logical expressions used as function arguments
foo(
long_long_long_long_long_long_long_condition_1 &&
long_long_long_long_long_long_long_varaible_2
);
foo(
long_long_long_long_long_long_long_condition_1 ||
long_long_long_long_long_long_long_varaible_2
);
foo(
long_long_long_long_long_long_long_condition_1 ??
long_long_long_long_long_long_long_varaible_2
);
// Indent multiline logical sub expressions
long_long_long_long_long_long_long_condition_1 ||
(
long_long_long_long_long_long_long_condition_2 &&
long_long_long_long_long_long_long_condition_3
);
long_long_long_long_long_long_long_condition_1 &&
(
long_long_long_long_long_long_long_condition_2 ||
long_long_long_long_long_long_long_condition_3
);
long_long_long_long_long_long_long_condition_1 ||
(
long_long_long_long_long_long_long_condition_2 ??
long_long_long_long_long_long_long_condition_3
);
// Indent multiline logical expressions with a binary expression parent
num_x *
(
long_long_long_long_long_long_long_condition_2 &&
long_long_long_long_long_long_long_condition_3
);
num_x *
(
long_long_long_long_long_long_long_condition_2 ||
long_long_long_long_long_long_long_condition_3
);
num_x *
(
long_long_long_long_long_long_long_condition_2 ??
long_long_long_long_long_long_long_condition_3
);
================================================================================
`;

exports[`issue-7024.js format 1`] = `
====================================options=====================================
parsers: ["babel", "flow", "typescript"]
Expand Down
29 changes: 29 additions & 0 deletions tests/format/js/logical_expressions/indent_multiline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Indent multiline logical expressions used as function arguments
foo(long_long_long_long_long_long_long_condition_1 &&
long_long_long_long_long_long_long_varaible_2);
foo(long_long_long_long_long_long_long_condition_1 ||
long_long_long_long_long_long_long_varaible_2);
foo(long_long_long_long_long_long_long_condition_1 ??
long_long_long_long_long_long_long_varaible_2);

// Indent multiline logical sub expressions
long_long_long_long_long_long_long_condition_1 ||
(long_long_long_long_long_long_long_condition_2 &&
long_long_long_long_long_long_long_condition_3);
long_long_long_long_long_long_long_condition_1 &&
(long_long_long_long_long_long_long_condition_2 ||
long_long_long_long_long_long_long_condition_3);
long_long_long_long_long_long_long_condition_1 ||
(long_long_long_long_long_long_long_condition_2 ??
long_long_long_long_long_long_long_condition_3);

// Indent multiline logical expressions with a binary expression parent
num_x *
(long_long_long_long_long_long_long_condition_2 &&
long_long_long_long_long_long_long_condition_3);
num_x *
(long_long_long_long_long_long_long_condition_2 ||
long_long_long_long_long_long_long_condition_3);
num_x *
(long_long_long_long_long_long_long_condition_2 ??
long_long_long_long_long_long_long_condition_3);
12 changes: 7 additions & 5 deletions tests/format/typescript/as/__snapshots__/jsfmt.spec.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -250,11 +250,13 @@ angular.module("foo").directive("formIsolator", () => {
this.initialValues =
undefined;
const extraRendererAttrs = ((
attrs.rendererAttrs &&
this.utils.safeParseJsonString(attrs.rendererAttrs)
) ||
Object.create(null)) as FieldService.RendererAttributes;
const extraRendererAttrs = (
(
attrs.rendererAttrs &&
this.utils.safeParseJsonString(attrs.rendererAttrs)
) ||
Object.create(null)
) as FieldService.RendererAttributes;
const annotate = (angular.injector as any).$$annotate as (
fn: Function
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@ const b = \`\${
(foo + bar) as veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongBaz
}\`;
const b = \`\${
(veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFoo +
veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongBar) as veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongBaz
(
veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFoo +
veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongBar
) as veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongBaz
}\`;
================================================================================
Expand Down

0 comments on commit 7931e42

Please sign in to comment.