vuejs / vue-syntax-highlight

💡 Sublime Text syntax highlighting for single-file Vue components
MIT License
1.49k stars 233 forks source link

Not using configured JS syntax inside <script> block #194

Open dsl101 opened 4 years ago

dsl101 commented 4 years ago

The documentation suggests the <script> block will use whatever syntax is used for regular .js files, but I'm getting very different results in Vue SFC <script> vs plain .js files. My default syntax is JavaScript Next, and looks like this (correct):

image

but that code in a Vue SFC looks like this (many things miscoloured):

image

There are lots of other differences too, and I can get the effect in plain .js files by switching to the built-in Javascript syntax (which is the reason I moved to JS Next). So, is there a way to be explicit about which syntax to use, or is there just a bug not picking up the configured .js syntax setting?

rchl commented 4 years ago

https://packagecontrol.io/packages/JavaScriptNext%20-%20ES6%20Syntax is not maintained for 2 years now. Official syntax by now has implemented probably all and more of what JavaScriptNext supports. It's not a good idea to keep using it. Even if you think that highlighting is better in it ("better" being subjective as official highlighting might make more sense consistency wise).

skyronic commented 4 years ago

Have you tried disabling the default javascript package?

Ctrl+Shift+P -> Disable Package -> JavaScript

dsl101 commented 4 years ago

OK, several separate thoughts:

dsl101 commented 4 years ago

In fact, I've removed JSNext and re-enabled the built-in JavaScript syntax, and I notice several differences between the scopes from a .vue file and a .js file. Small example in a plain .js file:

image

The components key scope is:

source.js
meta.export.js
meta.object-literal.js
meta.object-literal.key.js

but in a .vue file:

image

with:

text.html.vue
source.js.embedded.html
source.js
meta.export.js
meta.mapping.js
meta.mapping.key.js
string.unquoted.js

Doesn't seem like that is the same syntax highlighter being used for the JS part...

ada-ada-ada-art commented 4 years ago

I have a similar issue. Interestingly the syntax highlight is correct, if I set lang=ts. Which I am not interested in doing for this component though.

Capture d’écran 2020-05-20 à 20 35 30 Capture d’écran 2020-05-20 à 20 35 38