2015-02-09 56 views
4

我已经开始使用MeteorJS,它需要Handlebars模板以* .html结尾。Sublime - 为* .hbs.html设置默认语法

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

我想简单地使用* .hbs.html,所以流星不会引发异常,我会同时为Handlebars获取语法高亮。如何自定义Sublime将* .hbs.html识别为Handlebars语法?

UPDATE:

这里是我的ApplySyntax(还没有成型)代码:

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

回答

3

试试这个在ApplySyntax:

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

的关键是在name - 你需要指定包的名称和路径.tmLanguage文件(扩展名除外)。在这种情况下,我认为它是Handlebars包的根源,所以这应该起作用。

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

+0

感谢您澄清,我需要“把手/把手”来实现它,尽管我使用了Leonid代码的扩展。 – ilrein 2015-02-17 23:38:34

2

默认崇高文本仅使用最后一个扩展部分,以检测语法,你的情况,这是html

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

的ApplySyntax配置应该看起来像

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

谢谢你的提示,我已经安装了软件包,并试图修改默认 - 用户设置。我没有得到它的工作。有什么建议么?我已经添加了上面的代码片段。 – ilrein 2015-02-09 19:11:04

+0

我遇到同样的问题。我也试过:'“name”:“Handlebars”,“rules”:[{“file_name”:“。* \\。html $”},{“first_line”:“^