Синтаксическая подсветка с помощью Sublime Text 2 - PullRequest
5 голосов
/ 19 февраля 2012

Мне интересно, есть ли способ иметь два разных цвета тегов ("цвета" для США) для разных языковых тегов в одном файле.

Например, допустим, у меня есть код ColdFusion и HTML-код в одном файле .cfm. Могу ли я сделать теги ColdFusion красным, а теги HTML синим?

Например, давайте назовем файл ниже HelloWorld.cfm - можно ли по-разному раскрасить теги?

<cfset myvar = "hello, world" />
<html>
<head>
  <title>This is my title</title>
</head>
<body>

<div><cfoutput>#myvar#</cfoutput></div>

</body>
</html>

Спасибо!

Ответы [ 2 ]

21 голосов
/ 19 февраля 2012

Да, если теги могут быть идентифицированы как имеющие разные области видимости в соответствии с вашими определениями установленного языка, вы можете редактировать свою цветовую схему, чтобы назначать этим областям определенные цвета и другие стили.

В вашей папке пакетов языковые области определены в файлах .tmLanguage для ваших установленных языков, а стили определены в файлах .tmTheme в папке «цветовая схема - по умолчанию».

Если вы поместите курсор внутри тега и нажмете shift + ctrl + alt + p ( shift - cmd -p в OSX, я думаю) в строке состояния будет отображаться текущая область. Вы также можете скопировать это в буфер обмена через консоль с помощью этой команды:

sublime.set_clipboard(view.syntax_name(view.sel()[0].b))

Вы можете использовать эту информацию для создания своих стилей, немного как селекторы CSS, но с XML. Например, я использую пакет Coldfusion , и у меня есть селекторы областей действия, показанные ниже в моем настраиваемом файле .tmTheme, чтобы отличать теги cf от тегов HTML.

<dict>
    <key>name</key>
    <string>Tag name</string>
    <key>scope</key>
    <string>entity.name.tag</string>
    <key>settings</key>
    <dict>
        <key>background</key>
        <string>#D8D0B6</string>
        <key>fontStyle</key>
        <string>bold</string>
        <key>foreground</key>
        <string>#647A4F</string>
    </dict>
</dict>
<dict>
    <key>name</key>
    <string>CF tag name</string>
    <key>scope</key>
    <string>entity.name.tag.conditional.cfml, entity.name.tag.declaration.cfml, entity.name.tag.other, entity.name.tag.cf, entity.name.tag.inline.other.cfml</string>
    <key>settings</key>
    <dict>
        <key>background</key>
        <string>#D8D0B6</string>
        <key>fontStyle</key>
        <string>bold</string>
        <key>foreground</key>
        <string>#990033</string>
    </dict>
</dict>

Подробнее о селекторах охвата .

4 голосов
/ 20 февраля 2012

Я обновил ColdFusion.tmLanguage, так что вам нужно только нацелить entity.name.tag.cf, чтобы раскрасить все теги cf.Вы также можете выбрать конкретные теги, например entity.name.tag.cf.script или entity.name.tag.cf.query для cfscript и cfquery соответственно.НТН

...