Skip to content

Conversation

@RobinMalfait
Copy link
Member

@RobinMalfait RobinMalfait commented Mar 7, 2025

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:

@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

@RobinMalfait RobinMalfait requested a review from a team as a code owner March 7, 2025 11:13
@RobinMalfait RobinMalfait merged commit f498e4a into main Mar 7, 2025
5 checks passed
@RobinMalfait RobinMalfait deleted the fix/issue-17023 branch March 7, 2025 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Extractor issues in Livewire Flux

3 participants