Sublime Text 2:基于上下文的不同语言突出显示? (网络风暴)

Posted

技术标签:

【中文标题】Sublime Text 2:基于上下文的不同语言突出显示? (网络风暴)【英文标题】:Sublime Text 2: Different language highlighting based on context? (a la Webstorm) 【发布时间】:2013-03-04 10:19:44 【问题描述】:

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

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

...他可以把引号里面的内容高亮为html

我使用 Sublime Text 2,并且非常喜欢它。是否有现有的 Sublime 功能/插件可以处理这样的情况?如果不是,那么使用 Sublime Text 2 API 在技术上是否可行?

【问题讨论】:

【参考方案1】:

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

我对 AngularJS 一无所知,所以我无法为您提供任何具体的帮助,但这当然是可能的。请注意,在下图中,最后一个 &lt;table&gt;&lt;/table&gt; 只是为了表明此处没有突出显示。

编辑:

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

【讨论】:

这个文件是否覆盖了默认的DOT.thLanguage,或者它是否扩展了它(不知何故)。 @RyanB 我忽略了内置的graphviz包,所以它使用我自己的。【参考方案2】:

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

【讨论】:

以上是关于Sublime Text 2:基于上下文的不同语言突出显示? (网络风暴)的主要内容,如果未能解决你的问题,请参考以下文章

Sublime Text3介绍和插件安装——基于Python开发

软件技巧Sublime Text为不同语法定义不同高亮

Sublime Text 如何一个代码双屏显示代码上下部分?

求助前端大神!关于sublime text使用的一些问题

Sublime text 2/3 中 Package Control 的安装与使用方法

Sublime text 2/3 中 Package Control 的安装与使用方法