如何在Sublime中的JavaScript字符串中语法高亮显示HTML

Dmi*_*sev 10 html javascript syntax-highlighting angularjs sublimetext3

在JavaScript字符串中是否有语法高亮HTML的Sublime包?

(注意问题只是关于JS字符串中的HTML,而不是一般的语法高亮.)

具体来说,我正在使用内联模板编写Angular组件

angular.module('compMod', []).component('myComp', {
    template: `<div>Some Text</div>`
});
Run Code Online (Sandbox Code Playgroud)

并希望在ES6模板字符串中突出显示HTML语法.

Klu*_*dge 11

正如@Calvin上面评论的那样,我不会说这是一个很好的做法,但我不一定会说这是一个很糟糕的做法.无论如何,这是我天真的解决方案(没有测试任何边缘情况):

为sublime文本安装babel包,并选择它作为*.js文件的默认语法.

接下来,编辑JavaScript (Babel).sublime-syntax,位于Babel包目录内,例如~/.config/sublime-text-3/Packages/Babel/.

搜索该部分template-string-body:,并在其开头添加以下两行,类似于@ VRPF的建议:

- meta_content_scope: text.html.basic.embedded.js
- include: scope:text.html.basic
Run Code Online (Sandbox Code Playgroud)

现在,您可以完全支持模板字符串中的es6 + HTML语法.

  • 这有效!如果想用默认的 JavaScript 语法来实现,可以使用 Package Resource Viewer -&gt; Open Resource -&gt; JavaScript -&gt; JavaScript.sublime-syntax,并修改 `literal-string-template`:将 `meta_scope` 设置为 `text .html.basic.embedded.js` 和 `include` 到 `scope:text.html.basic`。 (2认同)