yungsters/sublime

Inside HTML chunks, some javascript syntax highlighting rules still apply

Opened this issue · 4 comments

Seems like js parsing rules are still applying inside html chunks, which makes writing html really hard. I've highlighted a few issues below:

  1. JS keywords are highlighted in html, which is confusing, but not terrible.
  2. Adding 'get' removes syntax highlighting from all remaining code in a fn
  3. Adding a single ' makes the rest of the file look like it is inside a string. That's kinda inconvenient.

image

Ping

I'm seeing this too. No idea how to fix it though. :(

10980f0 fixes the common case where quotes surrounded by letters are interpreted as strings:

var component = <div>Hello, y'all!</div>; // Should now work.

Unfortunately, syntax highlighting uses regular expressions for speed reasons, and JavaScript (including JSX) are not regular languages. (Still, we can probably do better, but not without significantly refactoring the language file.)

To work around this at Facebook (when it comes up), we've been using expression interpolation:

var component = <div>All of my friends{"'"} photos are cooler than mine.</div>;

Kind of lame, but not the end of the world. I hope this helps, and I welcome any PRs that attempt to provide a better solution.

It's working! Thank you!