Я пытаюсь выделить пользовательский язык в TextMate. Однако следующее определение не выделяет вставки PHP (я выбираю его для своих файлов *.serpent):
{ scopeName = 'source.serpent';
fileTypes = ( 'serpent' );
patterns = (
{ begin = '<\?';
end = '\?>';
patterns = ( { include = 'source.php'; } );
},
);
}
Если я выбираю язык PHP, то выделяются части PHP.
Что может быть причиной? Должно ли это работать?
Я также рассматривал рубиновые вставки с разделителями ‹% %>, но это не работает с самой простой настройкой.
Обновить
Судя по всему, это проблема только 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'; },
);
}
Я заставил его работать, заменив source.php на #language в своих шаблонах и скопировав репозиторий с языка PHP.