VIM php синтаксическая ошибка - PullRequest
3 голосов
/ 06 октября 2011

У меня включена подсветка синтаксиса в VIM, и он правильно распознает файлы всех типов и делает все красиво. Однако в одном файле PHP я делаю preg_match() со строкой регулярного выражения, включающей в себя ?> в середине, и VIM считает, что это конец раздела кода PHP моего файла, и все после того, как он становится грубым, без цвета.

Помимо переписывания моего регулярного выражения, чтобы оно не содержало этих двух символов подряд, есть ли что-то, что я могу сделать, чтобы VIM понял, что я нахожусь в середине строки, а не в секции кода?

Ответы [ 2 ]

0 голосов
/ 06 октября 2011

Возможно, вы сможете избежать >:

?\>

если это часть содержимого, то не должно нарушать регулярное выражение.

Единственный другой способ, который я могу придумать, - это использовать теги стиля ASP <%%> или <script language="php"></script>, но я не уверен, поддерживает ли vim их, и это было бы глупо.

0 голосов
/ 06 октября 2011

Я бы сказал нет, если вы на самом деле не изменили src для vim. Подсветка синтаксиса в SO имеет ту же проблему:

<?php

  some_code("that is highlighted correctly");
  $mystring = "This code is highlighted OK, until I do ?>";
  some_other("code that should be syntax highlighted but isn't");

?>

Это потому, что SO и vim используют регулярные выражения для выделения кода, и они не достаточно сложны, чтобы справиться с этим ...

...