A utility-first CSS framework for rapid UI development.
Improve whitespace handling during canonicalization (#19986)
This PR fixes a printing bug during canonicalization where it converts: ``` [&:has(~_*_*:checked)]:text-green-500 ``` into: ``` [&:has(~**:checked)]:text-green-500 ``` This is because the `_` was marked as insignificant and therefore removed. This PR fixes that and maintains the whitespace (`_`) characters when needed. Additionally, in the comments of the linked issue somebody mentioned that: ``` w-[calc(100%_-_--spacing(60))] ``` was turned into: ``` w-[calc(100%---spacing(60))] ``` ...and while that's still correct and parseable, it's not the prettiest. This PR will still get rid of the whitespace, but introduce wrapping parens `(…)` instead, in case readability is not ideal. In this case, we will turn it into: ```diff - w-[calc(100%_-_--spacing(60))] - w-[calc(100%---spacing(60))] + w-[calc(100%-(--spacing(60)))] ``` Of course there are some cases where we don't need to introduce `(…)` unnecessarily: - `shadow-[inset_0px_1px_--theme(--color-white/15%)]` would not be turned into `shadow-[inset_0px_1px_(--theme(--color-white/15%))]` because no readability is gained when it's part of a normal space separated list - `m-[--spacing(12.34)]` would not be turned into `m-[(--spacing(12.34))]` because there is nothing else it can conflict with - `m-[calc(--spacing(12.34)*2)]` would not be turned into `m-[calc((--spacing(12.34))*2)]` because it's the first argument and doesn't conflict with the `*` - `m-[min(100%,--spacing(12.34))]` would not be turned into `m-[min(100%,(--spacing(12.34)))]` because a `,` doesn't cause readability issues Fixes: https://github.com/tailwindlabs/tailwindcss-intellisense/issues/1544 ## Test plan 1. Added new tests to ensure the bug is fixed 2. Added new tests to ensure readability is improved (and not degraged) when whitespace was used to improve readability
R
Robin Malfait committed
3aac5dafe8cf26a96f29f95edf82f309ca4a1436
Parent: 107e451
Committed by GitHub <noreply@github.com>
on 4/26/2026, 10:20:53 PM