Подсветка синтаксиса Textmate, расширяясь выделяющийся с другого языка

Я пытаюсь расширить некоторый CSS, выделяющийся в Textmate. Мой подход похож так...

{ 
    ....
    patterns = (
        { include = 'source.css'; },
        { 
            name = 'support.function';
            match = '\..*\);';
        },
    );
}

Проблема, "включают = 'source.css'";. если я удаляю ту строку. Мой пользовательский matcher поражает и применяет ожидаемое выделение. Но затем я теряю всю предопределенную CSS, выделяющую это, я хочу.

Я озадачен относительно того, как я могу переопределить существующую CSS, выделяющую это, я включительно Идеи?

5
задан Roy Kolak 29 June 2010 в 16:25
поделиться

1 ответ

У меня была аналогичная проблема. Я ударился головой о него, затем кто-то в IRC-канале TextMate меня прямо разъяснил: по какой-то причине (о которой я забыл) вам нужно повторно включить грамматику языка.

Мой раздел шаблонов теперь выглядит как

patterns = (
{   include = 'source.ruby'; },
{   include = '$self'; },
);

Чтобы добавить больше информации к этому примеру, вот мой грамматик языка для пакета , который я создавал (в той части файла, которая меня интересовала, все был в области видимости meta.rails.model. Может быть, у вас этого нет в вашем пакете CSS.

patterns = (
    {   name = 'meta.rails.model';
        comment = "Uses lookahead to match classes that (may) inherit from ActiveRecord::Base; includes 'source.ruby' to avoid infinite recursion";
        begin = '(^\s*)(?=class\s+.+ActiveRecord::Base)';
        end = '^\1(?=end)\b';
        patterns = (
            {   include = 'source.ruby'; },
            {   include = '$self'; },
        );
    },
    {   name = 'source.ruby.rails.aasm.event';
        match = '(aasm_event\W*:\w+)';
        captures = { 1 = { name = 'keyword.other.context.ruby.rails.aasm.event'; }; };
    },
    {   include = 'source.ruby.rails'; },
);

}

Но вы видите, что объявление $ self втягивает другие шаблоны в шаблон meta.rails.model (что, я думаю, почему это было важно).

4
ответ дан 15 December 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: