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

时间:2015-02-09 16:03:47

标签: sublimetext3

我开始使用MeteorJS,它要求Handlebars模板以* .html结尾。

你不能使用* .hbs,否则Meteor会抛出错误。

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

更新:

这是我的ApplySyntax代码(尚未正常工作):

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

3 个答案:

答案 0 :(得分:4)

在ApplySyntax中尝试:

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

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

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

答案 1 :(得分:2)

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

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

ApplySyntax配置应该类似于

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

答案 2 :(得分:2)

我能够在没有任何额外包裹的情况下使用它。我使用的是Sublime Text 3 Build 3126。

  1. 打开要更改其语法的文件
  2. 转到查看语法使用当前扩展名打开全部→选择适当的语法
  3. 偏好设置设置 - 特定于语法
  4. 根据需要更改扩展名,例如:

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