Sublime -- 为 *.hbs.html 设置默认语法

Sublime -- Setting Default Syntax for *.hbs.html

我已经开始使用 MeteorJS,它要求 Handlebars 模板以 *.html.

结尾

不能使用 *.hbs,否则 Meteor 会报错。

我想简单地使用 *.hbs.html,这样 Meteor 就不会引发异常,而且我会同时获得 Handlebars 的语法高亮显示。如何自定义 Sublime 以将 *.hbs.html 识别为 Handlebars 语法?

更新:

这是我的 ApplySyntax 代码(尚未运行):

"syntaxes": [
      {
            "name": "Handlebars",
             "match": "all",
             "rules": [
                 {"file_name": ".hbs.html$"}
             ]
        }
    ]

默认情况下,Sublime Text 仅使用最后一个扩展部分来检测语法,在您的情况下,它是 html

有一个名为 ApplySyntax 的插件可以通过文件名的任何部分检测语法,例如 hbs.html,除此之外 - 请参阅默认设置文件以获取示例。

ApplySyntax 配置应如下所示

"syntaxes": [
        {
             "name": "Handlebars",
             "rules": [
                 {"file_name": ".*\.hbs\.html$"}
             ]
        }
    ]

在 ApplySyntax 中试试这个:

"syntaxes": [
  {
    "name": "Handlebars/Handlebars",
    "extensions": ["hbs.html"]
  }
]

密钥在 name 中 - 您需要指定包的名称以及该包中 .tmLanguage 文件(不包括扩展名)的路径。在这种情况下,我认为它位于 Handlebars 包的根目录中,所以它应该可以工作。

如果您需要其他扩展,只需将它们添加到该数组,或者如果您需要更复杂的匹配,您可以使用其他答案中概述的正则表达式(或两者的组合)。

我能够在没有任何额外软件包的情况下使它工作。我正在使用 Sublime Text 3 Build 3126。

  1. 打开要更改其语法的文件
  2. 转到查看语法打开所有当前扩展名为 → select 适当的语法
  3. 首选项设置 - 特定语法
  4. 适当更改扩展名,例如:

    {
        "extensions":
        [
            "hbs.html"
        ]
    }
    
  5. 保存语法设置文件