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}} как другой.

Другие вопросы по тегам