带有车把语法的 Ace 编辑器 json

cod*_*135 6 syntax json editor handlebars.js ace-editor

Ace 可以突出显示 JSON 或句柄的语法,但不能同时突出显示。

我正在使用带有“handlebar”模式的 ace 编辑器作为 Web IDE。

editor.getSession().setMode('ace/mode/handlebar');
Run Code Online (Sandbox Code Playgroud)

它按预期工作。然而,当 ace 设置为“handlebar”模式时,不会显示 json 的语法,因此它看起来非常丑陋,并且错误检测非常困难。

如果我将 ace 编辑器模式设置为

editor.getSession().setMode('ace/mode/json');
Run Code Online (Sandbox Code Playgroud)

由于 json 中的车把代码语法,Ace 编辑器显示错误。例如,{{#each data.content.people}}是handlebar语法,因此如果ace编辑器设置为模式“json”,它将在该行显示错误。

示例 json:

{
  "menu": {
    "id": "file",
    "value": "File",
    "types": [
      {
        "name": "NAMES",
        "values": [
          {{#each data.content.people}}
          {
            "name": {
              "value": "{{{this}}}",
              "synonyms": [
                "{{{lowerCase this}}}"
              ]
            }
          }{{#unless @last}}, {{/unless}}
          {{/each}}
        ]
      }
    ],
    "popup": {
      "menuitem": [
        {
          "value": "New", "onclick": "CreateNewDoc()"
        },
        {
          "value": "Open", "onclick": "OpenDoc()"
        },
        {
          "value": "Close", "onclick": "CloseDoc()"
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让Ace编辑器同时对json和handlebar进行语法检测,而无需创建自定义模式?