Подтвердить что ты не робот

Как добавить подсветку синтаксиса к возвышенному тексту 2

С учетом строки "text text #{interpolation}" Sublime Text 2 выделяет всю строку одним цветом. Я хотел бы выделить интерполированный текст, поэтому его легко выбрать. Когда я нажимаю ctrl-shift-alt-p в интерполированном разделе Sublime говорит мне пространство имен: source.ruby string.quoted.double.ruby source.ruby.embedded.source

Мне интересно, где бы я определил правило, чтобы выделить это (я думаю, в файле tmLanguage), в каком формате будет принимать это правило и как назначить ему цвет.

4b9b3361

Ответ 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>