Sublime Text 2:基于上下文的不同语言突出显示? (一个Webstorm)

时间:2013-03-15 15:59:16

标签: angularjs sublimetext2 webstorm

我正在Egghead.io观看有关AngularJS的一些视频。视频的创建者使用Webstorm(我相信,它适用于他们)。我注意到的一个特性是他可以在不同的范围或引号内设置不同的语法高亮。因此,在以下代码中(来自AngularJS指令)

return {
    template: '<div>something</div>',
    //         ^^^ these guys ^^^
}

...他可以将引号内部加以突出显示为HTML。

我使用 Sublime Text 2 ,并且相当坚定。是否有Sublime的现有功能/插件可以处理这样的情况?如果没有,使用Sublime Text 2 API在技术上是否可行?

2 个答案:

答案 0 :(得分:8)

我不认为它是内置的,但它肯定是可能的。我一直在用graphviz做一些工作,想做类似的事情。可以使用类似html的语法生成标签。无论如何,我玩了.tmLanguage文件并添加了一个新模式来匹配html之类的条目有效(我寻找label = <)。我用于捕获的模式并不是那么好,但它对我来说很好。这给了我以下,我认为这与您正在寻找的类似。

Demo

我对AngularJS一无所知,所以我无法帮助你解决任何具体问题,但肯定有可能。请注意,在下图中,最后一个<table></table>只是为了表明在那里没有突出显示。

编辑:

忘了将其包含在原帖中,但这是我更新的tmLangauage文件。第一个模式是我添加的(link)。我使用PlistJsonConverter从JSON转到plist,然后将文件保存为.tmLanguage。希望这会有所帮助。

答案 1 :(得分:0)

@skuroda是对的,我用@ skuroda的代码实现了一个额外的插件,可以在AngularJS指令JS文件中轻松编辑HTML。结果是在指令JS文件中突出显示HTML语法,以及在编辑模板时删除与字符串相关的分隔符的附加功能.... Sublime AngularJS HTML Template Plugin