tailwindcss/crates/oxide/src
Robin Malfait f498e4a97c
Ensure extracting candidates from JS embedded in a PHP string works as expected (#17031)
This PR fixes an issue where candidates are not properly extractor when
they end in `\`. This can happen if you embed a programming language
like JS inside another language like PHP where you need to escape some
strings.

Here is an example of Livewire flux:
```blade
@php
if ($sidebarIsStashable) {
    $attributes = $attributes->merge([
        'x-init' => '$el.classList.add(\'-translate-x-full\'); $el.classList.add(\'transition-transform\')',
        //                                                ^                                            ^
    ]);
}
@endphp

<div x-data {{ $attributes->class('border-r w-64 p-4 min-h-dvh max-h-dvh top-0 fixed left-0') }}>
    {{ $slot }}
</div>
```
Where the `\'` is causing some issues.

Another solution might be to add a custom pre processor for blade files
where we drop the escaped characters, but that felt overkill for now
because some escapes are still valid.

Fixes: #17023

# Test plan

1. Added a test to cover this case.
2. Existing tests still pass
2025-03-07 12:19:01 +01:00
..
extractor Ensure extracting candidates from JS embedded in a PHP string works as expected (#17031) 2025-03-07 12:19:01 +01:00
fixtures Improve Oxide candidate extractor [0] (#16306) 2025-03-05 11:55:24 +01:00
scanner Fix resolve_globs crash when at root directory (#15988) 2025-01-29 11:45:33 +01:00
cursor.rs Improve Oxide candidate extractor [0] (#16306) 2025-03-05 11:55:24 +01:00
fast_skip.rs Hoist oxide/crates to just crates (#13333) 2024-03-23 09:00:48 -04:00
glob.rs Improve Oxide candidate extractor [0] (#16306) 2025-03-05 11:55:24 +01:00
lib.rs Add razor/cshtml pre processing (#17027) 2025-03-07 12:02:07 +01:00
main.rs Improve Oxide candidate extractor [0] (#16306) 2025-03-05 11:55:24 +01:00
paths.rs Fix integration tests on Windows (#14824) 2024-10-30 11:26:29 +00:00
throughput.rs Improve Oxide candidate extractor [0] (#16306) 2025-03-05 11:55:24 +01:00