Detect classes inside Elixir charlist, word list, and string sigils #18432
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.