使用Sublime Text语法特定的高亮显示2

问题描述:

我想知道是否有一种方法可以在同一个文件中为不同语言标记使用两种不同的标记颜色(用于美国人的“颜色”)。使用Sublime Text语法特定的高亮显示2

例如,假设我在同一个.cfm文件中有ColdFusion代码和HTML代码。我可以将ColdFusion标记设为红色并将HTML标记设为蓝色?

例如,我们可以调用以下文件HelloWorld.cfm - 我可以用不同颜色标记颜色吗?

<cfset myvar = "hello, world" /> 
<html> 
<head> 
    <title>This is my title</title> 
</head> 
<body> 

<div><cfoutput>#myvar#</cfoutput></div> 

</body> 
</html> 

谢谢!

是的,只要通过安装的语言定义可以将标签标识为具有不同的范围,就可以编辑颜色方案以使用特定颜色和其他样式定位这些范围。

在您的包文件夹中,语言范围是在.tmLanguage文件中为您安装的语言定义的,而样式是在“color scheme - default”文件夹中的.tmTheme文件中定义的。

如果定位光标,标签内,并按转变 + CTRL + ALT +p转变 - CMD-p在OSX我认为)状态栏将显示当前范围。您也可以通过这个控制台使用此命令复制到剪贴板:

sublime.set_clipboard(view.syntax_name(view.sel()[0].b)) 

您可以使用这些信息来创建你的风格,有点像CSS选择器,但与XML。例如,我使用Coldfusion package,我在下面的自定义.tmTheme文件中显示范围选择器,以将cf标签与HTML标签区分开来。在scope selectors

<dict> 
    <key>name</key> 
    <string>Tag name</string> 
    <key>scope</key> 
    <string>entity.name.tag</string> 
    <key>settings</key> 
    <dict> 
     <key>background</key> 
     <string>#D8D0B6</string> 
     <key>fontStyle</key> 
     <string>bold</string> 
     <key>foreground</key> 
     <string>#647A4F</string> 
    </dict> 
</dict> 
<dict> 
    <key>name</key> 
    <string>CF tag name</string> 
    <key>scope</key> 
    <string>entity.name.tag.conditional.cfml, entity.name.tag.declaration.cfml, entity.name.tag.other, entity.name.tag.cf, entity.name.tag.inline.other.cfml</string> 
    <key>settings</key> 
    <dict> 
     <key>background</key> 
     <string>#D8D0B6</string> 
     <key>fontStyle</key> 
     <string>bold</string> 
     <key>foreground</key> 
     <string>#990033</string> 
    </dict> 
</dict> 

更多信息。

+0

谢谢杰里米,这是**正是**我正在寻找。奖励! – NotJustClarkKent 2012-02-21 17:10:51

+4

@NotJustClarkKent:那么将这个出色的答案标记为“答案”(通过点击复选标记)是适当的。 – 2012-03-06 08:14:51

我已更新ColdFusion.tmLanguage,因此您只需将entity.name.tag.cf作为目标即可为所有cf标记着色。您还可以分别针对cfscriptcfquery针对特定标签,例如entity.name.tag.cf.scriptentity.name.tag.cf.query。 HTH

+1

谢谢Atomi :) - 我现在正在玩这些实体目标,但我担心可能会有很多乐趣;) – NotJustClarkKent 2012-02-21 17:12:49