I am having a problem in PHPStorm where it won't highlight PHP code (but will intellisense it) inside a .php file when it's mixed with HTML code.
Screenshot (click to enlarge):
If I invalidate cache/restart, it will, for a few seconds, show the correct highlighting. However, after it "calculates", it will return to not highlighting it.
Is there a setting for this? Or is it just a plain bug?
I have read about language injections, but this does not seem like the place for it since it's a .php file already and PHP is not on the list of injectable languages.
Relevant code:
$works = "yes";
?>
var shouldStillWorkAfterThis = true;
$works = "yes";
?>
<?php $works = "yes"; ?> |
if ($works) {
?>
= $works ?> |
$anythingHereIsNowBroken = true;
?>
Language Injections Settings:
I am using PhpStorm 8.0.3 on MacOSX 10.9.5.
解决方案
Based on your screenshot of Settings (Preferences on Mac) | Editor | Language Injections.
Please delete 3rd language injection rule from the bottom (the one for "div" -- that has "IDE" in Scope column).
That rule injects HTML into div tag which tells IDE to treat all other code (even PHP) inside such tag as HTML/plain text.