Невозможно заставить работать подсветку синтаксиса в TextMate - PullRequest
0 голосов
/ 04 июня 2010

Я пытаюсь выделить пользовательский язык в 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.

1 Ответ

0 голосов
/ 09 июля 2010

В пт, 9 июля 2010 в 08:02, Аллан Odgaard писал:

Мы сделали грамматику PHP самой подходящей конструкция, так что с вашим грамматика, эти биты были использованы в том числе грамматики, а также включенная грамматика PHP для этого будет нет операции.

Причина, по которой мы сделали это, была так что грамматика PHP может работать при использовании в качестве корневой грамматики, так как многие пользователи настаивают на том, чтобы Кстати, несмотря на наши усилия ;)

¹ http://wiki.macromates.com/Troubleshooting/PHPSyntaxHighlight

С помощью Бога я понял свою ошибку и смог дать рабочее (по крайней мере, подчеркивающее!) Определение:

{   scopeName = 'source.phpruby.serpent';
    fileTypes = ( 'serpent', 'serpent.php', 'serpent.erb' );
    patterns = (
        {   begin = '<\?(php|=|)';
            end = '\?>';
            include = 'source.php';
        },
        {   begin = '<%';
            end = '%>';
            patterns = ( { include = 'source.ruby'; } );
        },
        {   include = 'source.serpent'; },
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...