修改HTML标签的Sublime文本语法突出显示

baf*_*mca 3 color-scheme sublimetext sublimetext2

我已经为Sublime Text 2尝试了很多配色方案,我发现了一个看起来很适合javascript和php的数字,但是它们在HTML中的文本和标签之间也存在着可怕的区别.

我想要做的是使HTML标签开始和结束标签(<>)的颜色相同.现在,左右V形显示与纯文本相同的颜色,这可能令人眼花缭乱.

配色方案 Frontier

实现它不是颜色方案,而是HTML的语法定义,我查看了~/Library/Application Support/Sublime Text 2/Packages/HTML/HTML.tmLanguage进行修改.

问题是,XML文件散落着&gt;,并&lt;没有文档文件本身比其他的语法定义非官方的文档.任何人都知道如何将开始和结束标记定义合并为标记本身?

另一个选择,当然,它编辑我喜欢的每个主题,并确保标签和chrevrons颜色相同,但我认为全局编辑在我的情况下会更有意义.

配色方案 Phoenix Dark Blue

例如,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>
Run Code Online (Sandbox Code Playgroud)

ang*_*son 5

如果出现进一步.tmLanguage相关的紧急情况,请注意TextMate手册语言语法部分.他们的例子是JSON:一种比PLIST更具可读性的格式,但不是Sublime Text可以正确使用的东西.ST2和ST3用户可以使用PackageDev编辑YAML中的语法.

正如您所提到的,并且正如我的正则表达式搜索所证实的那样&(g|l)t;,在Sublime Text 2(build 2221)语法文件中有太多 <>标记分隔符HTML.tmLanguage.一些HTML标签和古怪的正则表达式标签上下文是如此特别:保证一个独特的外延,这对我们来说不幸包括重新指定标记分隔符的范围和内容,<>,而不是在一些普遍的不平等符号范围选择挂钩.

幸运的是,每一个 实例&lt;,并&gt;给出了一个范围名称punctuation.definition.tag.???.html,这里???可能是begin,end或什么都没有.同样,每个HTML标记(htmlin <html>)的名称都非常相似entity.name.tag.html.财富受到称赞,是正规表达的时候了!

在你的HTML.tmLanguage文件中 - 我实际上建议Packages/User为安全起见克隆一个新文件,尽管你必须重命名文件和语法 - 对所有违规范围名称执行正则表达式搜索:

punctuation\.definition\.tag.*(?=</string>)
Run Code Online (Sandbox Code Playgroud)

...并用Ctrl+V与标签本身相同的名称替换每个结果(这应该像一个一样简单)entity.name.tag.html.在我的测试中,我还添加了另一个子范围tag,以防我以后需要找到替换,所以它看起来像这样:

entity.name.tag.delimiter.html
Run Code Online (Sandbox Code Playgroud)

我用ST2的默认配色方案进行了测试,它应该与其他精心编写的主题一起使用.这里是Dayle Rees的前线:

边境

它甚至可以在Sublime Text 3中使用!