yungsters / sublime

Random files I use with Sublime Text.
18 stars 26 forks source link

Inside HTML chunks, some javascript syntax highlighting rules still apply #1

Open jessep opened 10 years ago

jessep commented 10 years ago

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

dvdplm commented 10 years ago

Ping

bslatkin commented 10 years ago

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

yungsters commented 10 years ago

10980f017151844767941a9e2ff04917200f00a6 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.

bslatkin commented 10 years ago

It's working! Thank you!