【问题标题】:Modifiying Sublime Text Syntax Highlighting for HTML Tags修改 HTML 标签的 Sublime Text 语法高亮
【发布时间】:2013-12-29 05:20:46
【问题描述】:

我已经为 Sublime Text 2 尝试了多种配色方案,并且我发现了一个看起来非常适合 javascript 和 php 的数字,但它们在 HTML 中的文本和标签之间也有很大的区别。

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

配色Frontier

意识到这不是配色方案,而是 HTML 的语法定义,我查看了~/Library/Application Support/Sublime Text 2/Packages/HTML/HTML.tmLanguage 进行修改。

问题是,XML 文件中充斥着><,除了unofficial documentation for syntax definitions 之外没有文件本身的文档。任何人都知道如何将开始和结束标签定义合并为与标签本身相同?

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

配色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>

【问题讨论】:

    标签: sublimetext2 sublimetext color-scheme


    【解决方案1】:

    如果出现更多与.tmLanguage 相关的紧急情况,请记下TextMate ManualLanguage Grammars section。他们的例子在JSON:一种比 PLIST 可读性更高的格式,但不是 Sublime Text 可以正确使用的格式。 ST2和ST3用户可以使用PackageDev编辑YAML中的语法。

    正如您所提到的,并且正如我的正则表达式搜索 &amp;(g|l)t; 所证实的那样,Sublime Text 2(内部版本 2221)中有 太多 &amp;lt;&amp;gt; 标记分隔符HTML.tmLanguage 语法文件。一些 HTML 标记和古怪的正则表达式标记上下文是如此特殊,它们需要一个独特的表示,不幸的是,我们 包括重新指定标记分隔符的范围和上下文,&amp;lt; 和 @ 987654334@, 而不是挂钩到一些通用的不等式符号范围选择器。

    幸运的是,&amp;lt;&amp;gt;每个 实例的作用域名称为punctuation.definition.tag.???.html,其中??? 可以是beginend,或者什么都没有。同样,每个 HTML 标签(&lt;html&gt; 中的html)的命名与entity.name.tag.html 非常相似。祝你好运,正则表达式的时间到了!

    在你的HTML.tmLanguage 文件中——为了安全起见,我实际上建议将一个新文件克隆到Packages/User,尽管你必须重命名文件和语法——执行 regex搜索所有有问题的范围名称:

    punctuation\.definition\.tag.*(?=</string>)
    

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

    entity.name.tag.delimiter.html
    

    我已经使用 ST2 的默认配色方案对此进行了测试,它应该与其他编写良好的主题一起使用。这是Dayle Rees' Frontier

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

    【讨论】:

      【解决方案2】:

      据我所知,ST2 不再受支持(或正在运行)。这是一个快速的 ST3 解决方案。

      要自定义“标签”尖括号的颜色,您必须为标签活动创建一个字典范围,带有前景键和颜色字符串。这是正确的语法。

      <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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-01
        • 2014-05-17
        • 1970-01-01
        • 1970-01-01
        • 2014-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多