Textmate: весь текст в начале и конце захвата не окрашен / не соответствует
Так что я могу соответствовать / цвет {{#if media.isMobile}}
и это конец тега {{/if}}
, Но все, что находится между блоками, теперь просто обычный текст (до того, как он получил красивую HTML-раскраску). Так как же получить содержимое между захваченными изображениями, используя верхний уровень словаря (поскольку все, что не в тегах, все еще имеет правильный цвет)?
Вот мой код языкового паттерна для if
если вам нужно
<key>if_token</key>
<dict>
<key>begin</key>
<string>(\{\{#)(if) (.+)(\}\})</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>>punctuation.definition.tag.begin.html</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.handlebars</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>variable.parameter.handlebars</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.end.html</string>
</dict>
</dict>
<key>end</key>
<string>(\{\{\/)(if)(}})</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.begin.html</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.handlebars</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.end.html</string>
</dict>
</dict>
</dict>
1 ответ
Решение
Догадаться. Вместо захвата всего блока. Начать захват: {{#if ..
и конец: }}
как один шаблон. А также {{/if}}
как другой.