|
1 | | -import { createGroupedBinaryOperationPrinter } from './printers/create-grouped-binary-operation-printer.js'; |
2 | | -import { createArithmeticIndentIfNecessaryBuilder } from './printers/create-indent-if-necessary-builder.js'; |
| 1 | +import { doc } from 'prettier'; |
| 2 | +import { createBinaryOperationPrinter } from './printers/create-binary-operation-printer.js'; |
| 3 | +import { createBinaryIndentIfNecessaryBuilder } from './printers/binary-operation-printer.js'; |
| 4 | +import { multiplication } from './multiplication.js'; |
3 | 5 | import { addition } from './addition.js'; |
4 | | -import { equality } from './equality.js'; |
| 6 | +import { shift } from './shift.js'; |
| 7 | +import { bit } from './bit.js'; |
5 | 8 | import { inequality } from './inequality.js'; |
6 | | -import { multiplication } from './multiplication.js'; |
| 9 | +import { equality } from './equality.js'; |
| 10 | +import { logical } from './logical.js'; |
7 | 11 |
|
8 | | -const exponentiationPrinter = createGroupedBinaryOperationPrinter( |
9 | | - createArithmeticIndentIfNecessaryBuilder([ |
10 | | - addition, |
11 | | - equality, |
12 | | - inequality, |
13 | | - multiplication |
14 | | - // `bit` and `shift` should technically be here but they are properly |
15 | | - // parenthesised before reaching this point. |
16 | | - ]) |
17 | | -); |
| 12 | +const { group } = doc.builders; |
18 | 13 |
|
19 | 14 | export const exponentiation = { |
20 | 15 | match: (op) => op === '**', |
21 | | - print: exponentiationPrinter |
| 16 | + print: createBinaryOperationPrinter( |
| 17 | + () => (document) => group(document), // always group |
| 18 | + createBinaryIndentIfNecessaryBuilder([ |
| 19 | + multiplication, |
| 20 | + addition, |
| 21 | + shift, |
| 22 | + bit, |
| 23 | + inequality, |
| 24 | + equality, |
| 25 | + logical |
| 26 | + ]) |
| 27 | + ) |
22 | 28 | }; |
0 commit comments