~~ lineWidth: 40 ~~ == should print == test&&other ||asdf; [expect] test && other || asdf; == should print hanging when exceeding line width == test && other || asdf && test || asdf && asdf; [expect] test && other || asdf && test || asdf && asdf; == should print hanging when exceeding line width multiple times == test && other || asdf && test || asdf && asdf || asdf && asdf || test && other || asdf && test || asdf && asdf; [expect] test && other || asdf && test || asdf && asdf || asdf && asdf || test && other || asdf && test || asdf && asdf; == should handle comments on a different line in-between == testingtest // some comment && container.pos !== container.end; [expect] testingtest // some comment && container.pos !== container.end; == should handle comments on a different line in-between when the operator is on the preceding line == testingtest && // some comment container.pos !== container.end; [expect] testingtest // some comment && container.pos !== container.end; == should decide based on the left side's open paren token if it should be on a newline == (test && other) && ( test && other ); (test && other) && ( test || other ); [expect] (test && other) && ( test && other ); (test && other) && ( test || other ); == should not cut off an inner expression midway == testing && this.testing && other.testing; [expect] testing && this.testing && other.testing; == should support the nullish coalescing operator == test = test ?? 5; [expect] test = test ?? 5; == should get comments that are trailing of the left expression == testingtest(test) // test // asdf && asdf; [expect] testingtest(test) // test // asdf && asdf; == should handle when the comments are after the operator == testingtest(test) && // test // asdf asdf; [expect] testingtest(test) // test // asdf && asdf; == should indent according to the kind == a && b || c && d && e || f || g || h && j || k || l || m || n; [expect] a && b || c && d && e || f || g || h && j || k || l || m || n; == should only indent once when it has binary expressions nested within == a === b || a !== b || a !== b || a === b; [expect] a === b || a !== b || a !== b || a === b; == should indent only once when parens are inlined == a === b && (c === d && d === 4 || e === 3); [expect] a === b && (c === d && d === 4 || e === 3); == should indent twice if the parens start on a different line == a === b && (c === d && d === 4 || e === 3); [expect] a === b && (c === d && d === 4 || e === 3);