У меня проблема с PHPStorm, где он не будет выделять PHP-код (но будет intellisense его) внутри .php-файла, когда он смешивается с HTML-кодом.
Снимок экрана (нажмите, чтобы увеличить):
Если я аннулирую кеш / перезагрузку, он в течение нескольких секунд отобразит правильную подсветку. Однако после того, как он «вычисляет», он вернется, чтобы не выделять его.
Есть ли настройка для этого? Или это просто ошибка?
Я читал о языковых инъекциях, но это не похоже на место для него, так как это уже файл .php, а PHP не входит в список инъекционных языков.
Соответствующий код:
<?php $works = "yes"; ?> <html> <body> <script> var shouldStillWorkAfterThis = true; </script> <?php $works = "yes"; ?> <table> <tr> <td><?php $works = "yes"; ?></td> </tr> </table> <!-- lets try split syntax --> <?php if ($works) { ?> <table> <tr> <td><?= $works ?></td> </tr> </table> <?php $thisShouldToo = true; ?> <?php } ?> <!-- lets break it --> <div id="someclass"> <header> <div class="someotherclass"> <div class="andanextraclass"> <!-- include a file--> <?php include('somefile.php');?> <?php $anythingHereIsNowBroken = true; ?> </div> </div> </header> </div> </body> </html>
Языковые инжекционные настройки:
Я использую PhpStorm 8.0.3 на MacOSX 10.9.5.
На основе снимка экрана Settings (Preferences on Mac) | Editor | Language Injections
Settings (Preferences on Mac) | Editor | Language Injections
Settings (Preferences on Mac) | Editor | Language Injections
.
Пожалуйста, удалите правило ввода 3-го языка снизу (одно для «div» – у которого есть «IDE» в столбце «Область»).
Это правило вводит HTML в тег div
который указывает IDE обрабатывать весь другой код (даже PHP) внутри такого тега, как HTML / обычный текст.