Я пытаюсь выделить пользовательский язык в TextMate. Однако следующее определение не выделяет вставки PHP:
{ scopeName = 'source.serpent';
fileTypes = ( 'serpent' );
patterns = (
{ begin = '<?';
end = '?>';
patterns = ( { include = 'source.php'; } );
},
);
}
что может быть причиной?
обновление
Ну, я был слишком наивен, чтобы ожидать, что приведенное выше определение будет относиться к определению языка PHP.По-видимому, для того, чтобы выделить вставки PHP, необходимо скопировать значительную часть правил языка PHP в новый язык. И если я хотел бы использовать рубиновые вставки, а также, то это становится очень грязно.
Итак, я хотел бы спросить, Можно ли ссылаться на (не копировать!) Определения PHP или Ruby из определения моего нового языка (serpent). Это позволит прояснить ситуацию и сократить дублирование.
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'; },
);
}