我为Sublime Text 2尝试了很多配色方案,我发现了一个看起来很适合javascript和php的数字,但是它们在HTML中的文本和标签之间也存在着可怕的区别。
我要做的是将HTML标记与相同颜色作为开始和结束标记(<>
)。现在,左右V形显示与纯文本相同的颜色,可能令人眼花缭乱。
配色方案Frontier
实现它不是配色方案,而是HTML的语法定义,我查看~/Library/Application Support/Sublime Text 2/Packages/HTML/HTML.tmLanguage
进行修改。
问题是,XML文件中充斥着>
和<
,除unofficial documentation for syntax definitions之外没有文件本身的文档。任何人都知道如何将开始和结束标记定义合并为标记本身?
另一个选择当然是编辑我喜欢的每个主题,并确保标签和chrevrons的颜色相同,但我认为全局编辑在我的情况下更有意义。
例如,Phoenix Dark Blue
通过使用以下定义
<dict>
<key>name</key>
<string>Variable, String Link, Tag Name</string>
<key>scope</key>
<string>variable, support.other.variable, string.other.link, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#787878</string>
</dict>
</dict>
答案 0 :(得分:5)
如果发生其他.tmLanguage
相关紧急情况,请留意TextMate Manual的Language Grammars section。他们的例子是JSON:一种比PLIST更具可读性的格式,但不是Sublime Text可以正确使用的东西。 ST2和ST3用户可以使用PackageDev编辑YAML中的语法。
正如您所提到的,并且正如我的正则表达式搜索&(g|l)t;
所证实的那样,Sublime中有太多 <
或>
个标记分隔符文本2(构建2221)HTML.tmLanguage
语法文件。一些HTML标签和古怪的正则表达式标签上下文如此特殊,它们保证了一个独特的表示形式,不幸的是,我们包括重新指定标签分隔符的范围和上下文,<
和>
,,而不是挂钩到一些通用的不等号符号范围选择器。
幸运的是, <
和>
的每个实例的范围名称为punctuation.definition.tag.???.html
,其中???
可能为begin
},end
,或者什么也没有。同样,每个HTML标记(html
中的<html>
)的命名与entity.name.tag.html
非常相似。财富值得赞扬,现在是正则表达的时候了!
在你的HTML.tmLanguage
文件中 - 为了安全起见,我实际建议将新版本克隆到Packages/User
,尽管你必须重命名文件和语法 - 执行正则表达式使用以下方法搜索所有违规范围名称
punctuation\.definition\.tag.*(?=</string>)
...并使用与标记本身Ctrl+V
相同的名称替换每个结果(这应该只有一个entity.name.tag.html
)。在我的测试中,我还添加了另一个子范围tag
以防我以后需要找到替换项,所以它看起来像这样:
entity.name.tag.delimiter.html
我已经使用ST2的默认配色方案对其进行了测试,应与其他精心编写的主题配合使用。这是Dayle Rees' Frontier:
它甚至适用于Sublime Text 3!
答案 1 :(得分:0)
不再支持ST2(或据我所知,正在运行)。这是一个快速的ST3解决方案。
要自定义“标记”尖括号的颜色,必须使用前景键和颜色字符串为标记活动创建dict范围。这是正确的语法。
<dict>
<key>name</key>
<string>tag</string>
<key>scope</key>
<string>entity.name.tag, punctuation.definition.tag.begin, punctuation.definition.tag.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CCCCAA</string> <!-- custom tag color here -->
</dict>
</dict>
此范围说明here。
探索here的更多范围。