Break lines before binary operators (#7111)
* Add additional binary expression comment tests Refs #3806 These cover a few edge cases I encountered while maintaining `@btmills/prettier` over the last few years. I'm adding them up front to demonstrate that the `experimentalOperatorPosition` changes in a later commit have no effect on this formatting when the flag is not enabled. * Define experimentalOperatorPosition flag Refs #3806 This merely defines the flag. A future commit will use it in updated logic. * Add experimentalOperatorPosition default tests Right now, this flag isn't implemented, so these tests duplicate the existing behavior. I'm adding them now so that when I implement the flag's logic in a future commit, the changed formatting will be obvious in the diff and easier to review. * Implement experimentalOperatorPosition flag Fixes #3806 as requested in https://github.com/prettier/prettier/pull/7111#issuecomment-2252623779 The flag's tests were already added in a previous commit, so the test changes you see in this commit are specifically due to the new flag's implementation. * Document experimentalOperatorPosition flag * Change operator position option start|end In response to https://github.com/prettier/prettier/pull/7111#discussion_r1729382119 * Add TS intersection line wrapping tests This clones TypeScript's type union operator tests in `union-parens.ts` and swaps the operators (& <-> |) to test the the type interesection operator. It also runs intersection tests with the new `experimentalOperatorPosition: "start"` flag. This does _not_ yet update the implementation to consider the flag; to ease review, I'll make that change in the next commit to isolate the impact of the change. * Apply experimentalOperatorPosition: start to type intersections The type union operator was already formatted at the beginning of lines by default, so that logic didn't need to be updated. * Update 7111.md * Update tests after rebasing I rebased from1dfe28f85toc7066780eto fix test failures related to https://github.com/prettier/prettier/pull/16601. The rebase applied cleanly, and this was the only change to tests. Since the PR has already been approved, I'll keep this as a separate commit rather than squashing into the prior commits. --------- Co-authored-by: fisker Cheung <lionkay@gmail.com> Co-authored-by: SUZUKI Sosuke <aosukeke@gmail.com>
This commit is contained in:
17 files changed
+2342
-21
No files matched your search
@@ -22,6 +22,17 @@ Valid options:
|
||||
| ------- | -------------------------- | ------------------------------- |
|
||||
| `false` | `--experimental-ternaries` | `experimentalTernaries: <bool>` |
|
||||
|
||||
## Experimental Operator Position
|
||||
|
||||
Valid options:
|
||||
|
||||
- `"start"` - When binary expressions wrap lines, print operators at the start of new lines.
|
||||
- `"end"` - Default behavior; when binary expressions wrap lines, print operators at the end of previous lines.
|
||||
|
||||
| Default | CLI Override | API Override |
|
||||
| ------- | -------------------------------------------------------------- | ------------------------------------------------------------- |
|
||||
| `"end"` | <code>--experimental-operator-position <start|end></code> | <code>experimentalOperatorPosition: "<start|end>"</code> |
|
||||
|
||||
## Print Width
|
||||
|
||||
Specify the line length that the printer will wrap on.
|
||||
|
||||
Reference in new issue
Block a user