VSCode - Handlebars内的JavaScript代码片段<script>

时间:2018-04-03 21:23:04

标签: javascript visual-studio-code handlebars.js vscode-settings

问题

&#xA;&#xA;

在Visual Studio代码中,在Handlebars文件中,当在&lt; script&gt; 中编辑JavaScript代码时,JavaScript代码段是不可用。

&#xA;&#xA;

目标

&#xA;&#xA;

在这种情况下使用JavaScript代码段。

&#xA;&# xA;

示例

&#xA;&#xA;

说我在一个把手文件中,该文件有&lt; script&gt; 标记。

& #xA;&#xA;

&#xD; &#xA;
&#xD;&#xA;
 &lt; script type =“text / JavaScript的“&GT;&#的xD;&#XA; console.log('这是JavaScript代码。');&#xD;&#xA;&lt; / script&gt;  
&#xD;&#xA;
&#xD; &#xA;
&#xD;&#xA;

&#xA;&#xA;

编辑&lt; script&gt; 中的代码时(即,当光标位于&lt; script&gt; &lt; / script&gt; 之间时,我想使用我的JavaScript代码段。但是我不能。可以使用Handlebars片段,而不是JavaScript。

&#xA;&#xA;
    &#xA;
  1. &# xA;
  2. &#xA;
  3. &#xA;
&# xA;&#xA;
&#xA;&#xA;

但是,如果我将文件语言从“Handlebars”更改为“HTML”,则JavaScript代码段可用。

&#xA ;&#xA;
    &#xA;
  1. &#xA;
  2. &#xA;
  3. &#xA ;
&#xA;&#xA;

(唯一的变化是语言选择;光标位于相同的位置。)

&#xA;&#xA;
&#xA;&#xA;

对于这两种语言选择,JavaScript语法高亮显示用于&lt; script&gt; 内容。

&#xA;&#xA;
    &#xA;
  • 句柄:&#xA;&#xA;
      & #xA;
    • &#xA;
  • &#xA;
  • HTML:&#xA;&#xA;
      &#xA;
    • &#xA;
  • &#xA;
&#xA;& #xA;
&#xA;&#xA;

当文件语言为Handlebars时,使用Handlebars注释。当使用HTML时,使用JavaScript。

&#xA;&#xA;
    &#xA;
  • Handlebars:&#xA;&#xA;
      &#xA;
    1. &#xA;
    2. &#xA;
  • &# xA;
  • HTML:&#xA;&#xA;
      &#xA;
    1. &#xA;
    2. &#XA;
  • &#XA;
&#XA;&#XA;

分析

&#XA ;&#xA;

此示例显示在&lt; script&gt; 内容中:

&#xA;&#xA;
    &#xA;
  1. 当文件语言是Handlebars或HTML时,JavaScript同步使用税务突出显示。
  2. &#xA;
  3. 当文件语言为Handlebars时,使用Handlebars片段和注释。
  4. &#xA;
  5. 当文件语言为HTML时,JavaScript代码段使用和评论。
  6. &#xA;
&#xA;&#xA;

要想象这些关系:

&#xA;&#xA;
  |档案|亮点|片段|评论|&#xA; | ---------- | ---------- | ---------- | ---------- |&#xA; |把手| JS |把手|把手|&#xA; | HTML | JS | JS | JS |&#xA;  
&#xA;&#xA;

VSCode在两种情况下都使用JS语法高亮显示。因此,它认识到两种情况下的内容都是JS。

&#xA;&#xA;

为什么它不使用公认的语言的片段和注释?这是VSCode内置Handlebars扩展的可配置设置还是缺少功能?

&#xA;&#xA;

Notes

&#xA;&#xA;

这是Mac OS High Sierra 10.13.4上的Visual Studio Code 1.21.1。

&#xA;&#xA;

我的HTML和Handlebars设置:

&#xA;&#xA; <预> <代码> {&#XA; “html.format.indentHandlebars”:true,&#xA;}&#xA; &#xA;&#xA;

相关问题:

&#xA;& #xA; &#xA;

1 个答案:

答案 0 :(得分:0)

尝试在用户设置中为* .hbs文件添加emmet支持。

{
  "emmet.includeLanguages": {
      "handlebars": "html"
  }
}