Я пытаюсь расширить некоторый CSS, выделяющийся в Textmate. Мой подход похож так...
{
....
patterns = (
{ include = 'source.css'; },
{
name = 'support.function';
match = '\..*\);';
},
);
}
Проблема, "включают = 'source.css'";. если я удаляю ту строку. Мой пользовательский matcher поражает и применяет ожидаемое выделение. Но затем я теряю всю предопределенную CSS, выделяющую это, я хочу.
Я озадачен относительно того, как я могу переопределить существующую CSS, выделяющую это, я включительно Идеи?
У меня была аналогичная проблема. Я ударился головой о него, затем кто-то в 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 (что, я думаю, почему это было важно).