4 ms·
> and messes with semantics - it will add or remove parentheses in math expressions Wait, so prettier rewrites code incorrectly? Aka, it’s buggy?
by barsonme 3y ago
> and messes with semantics - it will add or remove parentheses in math expressions
Wait, so prettier rewrites code incorrectly? Aka, it’s buggy?
- tylerchurch 3y agoI've never seen it be buggy, but it will often remove unnecessary parens. For example: (a * b) + (x * y) becomes a * b + x * y. This the same code, but I often use parens for semantic grouping or to be 110% sure the operator precedence is correct for a particular formula. It's not a dealbreaker, but it does remove some of the meaning I was trying to imbue on the code.
- fenomas 3y agoNo, by semantic information I mean information that's meaningful to humans but not to the JS engine. E.g.: // before prettier var matrix = [ 1, 0, 0, 0, 1, 0, 0, 0, 1, ] var result = (num % divisor) | bitmask // after var matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1] var result = num % divisor | bitmask No difference in actual behavior, but the linebreaks and extra parens were there to indicate the developer's intent, not to affect behavior. Prettier's outlook is that this is intentional, and the developer should add "// prettier-ignore" comments to every line of code that has semantic information they want preserved.
- deleted 3y ago[deleted]