How can I configure PhpStorm so it recognizes javascript with embedded php

phpstorm

Solution

UPDATE 2023-04-24

As PhpStorm v9 (which is year 2015 or so), the IDE automatically detects the outer language if double file extension is used (the actual ticket: WI-24237).

So if your file is named `some.js.php` then it will automatically use JavaScript with PHP and there is no need for steps #2 and #3.

Three steps:

Give such a file custom (e.g. `*.phpjs`) or complex (`*.js.php` or `*.php.js`) file extension.

If the file extension does NOT end in `.php` then assign such a pattern to PHP file type in `Settings/Preferences | File Types`. This is needed so the file is treated as PHP (otherwise you will have no PHP syntax highlighting).

- If you do not want to give it such custom extension (for whatever reasons you may have there) then you'll have to assign full file name as a pattern (which can cause issues/confusion if you have another file with the same file name in another folder, even in another project).

- Please note -- this is an an IDE-wide setting so it will affect all projects and therefore custom/complex extension is the best and safe way to go (since it's more universal).

`Settings/Preferences | Languages & Frameworks | Template Data Languages` -- locate your file there and assign JavaScript to it (or whole folder, if all files in it will be treated similarly) -- this will set JavaScript as primary (outer) language instead of default HTML.

(PHP & JavaScript syntax colors + showing a tooltip for JavaScript's `alert()` function in a file named `some.js.php`)

Problem

In my framework I can have javascript files with embedded php. For example ``` $(document).ready(function(){ alert(<?php echo $message ?>); }); ``` How can I let PhpStorm detect the right languages so both javascript and php get correct syntax highlighting?

Original source