【问题标题】:How to add syntax highlighting to sublime text 2如何将语法高亮添加到 sublime 文本 2
【发布时间】:2013-02-07 05:39:31
【问题描述】:

给定字符串"text text #{interpolation}" Sublime Text 2 用一种颜色突出显示整个字符串。我想突出显示内插文本,以便轻松挑选。当我在插值部分按下 ctrl-shift-alt-p 时,Sublime 告诉我命名空间:source.ruby string.quoted.double.ruby source.ruby.embedded.source

我想知道我会在哪里定义一个规则来突出显示这一点(我认为是在 tmLanguage 文件中),该规则将采用什么格式,以及如何为其分配颜色。

【问题讨论】:

  • +1 用于 ctrl-shift-alt-p 技巧,非常有用
  • tmLanguage 文件设置语法。例如,它告诉 sublime,"#{}" 之间的任何内容都是该语法的“字符串嵌入源”。主题文件将告诉 sublime 为所有“字符串嵌入源”实例使用某种颜色/背景。

标签: ruby sublimetext2


【解决方案1】:

如果您深入研究包含的Dawn.tmTheme 文件(其中一个正确突出显示的唯一包含的主题),您会发现String embedded-source 的这些突出显示规则,出于某种原因,某些主题完全忽略了这一点:

<dict>
    <key>name</key>
    <string>String embedded-source</string>
    <key>scope</key>
    <string>string source</string>
    <key>settings</key>
    <dict>
        <key>background</key>
        <string>#6F8BBA26</string>
        <key>fontStyle</key>
        <string></string>
        <key>foreground</key>
        <string>#080808</string>
    </dict>
</dict>

【讨论】:

  • 我将它复制到我使用的主题中,然后编辑颜色的十六进制,直到找到我喜欢的颜色。非常感谢。
【解决方案2】:

这更好,因为它实际上将插值内的代码突出显示为普通代码,而不是所有相同的颜色。

<dict>
   <key>name</key>
      <string>Embedded Ruby Punctuation</string>
   <key>scope</key>
      <string>string punctuation.section.embedded.ruby</string>
   <key>settings</key>
   <dict>
      <key>foreground</key>
      <string>#F92672</string>
   </dict>
</dict>
<dict>
   <key>name</key>
      <string>Embedded Ruby Source</string>
   <key>scope</key>
      <string>string source.ruby.embedded.source</string>
   <key>settings</key>
   <dict>
      <key>foreground</key>
      <string>#FFFBF7</string>
   </dict>
</dict>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多