tailwindcss/crates/oxide/src
Jordan Pittman 8c8033017d
Detect classes inside Elixir charlist, word list, and string sigils (#18432)
Fixes #18431

The `~W(…)` syntax in Elixir is a _sigil_. It's basically another way to
write strings, arrays of strings, etc… The syntax lets you use a handful
of surrounding brackets like `~W(…)`, `~W[…]`, `~W{…}`, `~W"…"`, etc… to
let you write lists without necessarily having to escape characters.

In v3 our extractor was able to pick these up but in v4 Oxide does not.
I've added a preprocessor for Elixir files so we can modify the code
before our main extractor sees it.

Now things like this: `~W(text-white bg-gray-600)` will get turned into
` ~W text-white bg-gray-600 ` which can easily be processed by our
extractor.

The sigils we support are:
- `~s` / `~S` (strings)
- `~w` / `~W` (word lists)
- `~c` / `~C` (charlists)

We're specifically detecting the use of `(…)`, `[…]`, and `{…}` as using
quotes already works today.

---------

Co-authored-by: Robin Malfait <malfait.robin@gmail.com>
2025-07-02 16:01:13 -04:00
..
extractor Detect classes inside Elixir charlist, word list, and string sigils (#18432) 2025-07-02 16:01:13 -04:00
fixtures Improve Oxide candidate extractor [0] (#16306) 2025-03-05 11:55:24 +01:00
scanner Detect classes inside Elixir charlist, word list, and string sigils (#18432) 2025-07-02 16:01:13 -04:00
cursor.rs A bit of cleanup (#17394) 2025-03-26 12:08:53 -04:00
fast_skip.rs Hoist oxide/crates to just crates (#13333) 2024-03-23 09:00:48 -04:00
glob.rs A bit of cleanup (#17394) 2025-03-26 12:08:53 -04:00
lib.rs Add @source not support (#17255) 2025-03-25 15:54:41 +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