Open sentience opened 5 months ago
Probably need to push a proper CLASS_NAME_RE
down into css-shared.js
where it can then be shared with all the css-like grammars.
Anyone wanting to pick this up will need to take a look at tools/css
. (helps with CSS testing). We require that all our css-like grammars remain consistent, so a patch here would need to fix all 4 grammars, not just CSS.
A PR would be welcome.
Describe the issue
CSS class and ID selectors contain arbitrary strings (e.g.
.myclassname
), which can contain escaped special characters (e.g..foo\:myclassname
to matchclass="foo:myclassname"
). Currently, the backslash that escapes a special character is not recognised by highlight.js as a valid part of the class name or ID.Which language seems to have the issue?
css
Are you using
highlight
orhighlightAuto
?highlight
Sample Code to Reproduce
Current highlighting:
Expected behavior
The escaped special characters (
\:
) should not interfere with the highlighting of the class name, but actual pseudoclasses (:hover
) should still be highlighted.GitHub:
VS Code:
Additional context
TailwindCSS makes extensive use of escaped characters in CSS selectors for its modifiers.
Other special characters are escaped for features like color opacity:
…and arbitrary values: