Я пытаюсь выделить пользовательский язык в TextMate. Однако следующее определение не выделяет вставки PHP:
{ scopeName = 'source.serpent';
fileTypes = ( 'serpent' );
patterns = (
{ begin = '<\?';
end = '\?>';
patterns = ( { include = 'source.php'; } );
},
);
}
В чем может быть причина?
Обновить
Ну, я был слишком наивен, чтобы ожидать, что приведенное выше определение будет ссылаться на определение языка PHP.По-видимому, чтобы выделить вставки PHP, необходимо скопировать значительную часть правил языка PHP на новый язык. И если я хотел бы также использовать вставки Ruby, то это становится действительно грязным.
Итак, я хотел бы спросить, если можно сослаться (не копировать!) Определения PHP или Ruby из моего нового определения языка (змея). Это сделало бы это понятным и уменьшило бы дублирование.
Update2
По-видимому, это проблема только PHP. Следующее определение языка выделяет языки Ruby и Serpent в моем тексте, но не вставки PHP! Что, черт возьми, здесь не так?
{ scopeName = 'source.phpruby.serpent';
fileTypes = ( 'serpent', 'serpent.php', 'serpent.erb' );
patterns = (
{ begin = '<\?(php|=)?';
end = '\?>';
patterns = ( { include = 'source.php'; } );
},
{ begin = '<%';
end = '%>';
patterns = ( { include = 'source.ruby'; } );
},
{ include = 'source.serpent'; },
);
}