#php #javascript #intellij-idea
#php #javascript #intellij-идея
Вопрос:
У меня есть файл JavaScript, в котором должны быть некоторые теги PHP. Что-то вроде этого:
var chart = {
init: function() {
...
drawChart(this.data);
...
},
data: <?php echo $this->data ?>
}
Очевидно, что результат представляет собой чистый файл JavaScript, и функционально он работает нормально. Однако IntelliJ неправильно выделяет код. Если я назову файл с расширением .js, он начнет показывать ошибки, как только он пересекается с тегом PHP. Если я назову файл с расширением .php, он не покажет никаких синтаксических ошибок, но не выделит ни один из JavaScript, только PHP.
Я знаю, что он способен это сделать, потому что я могу назвать файл с расширением .php и окружить весь код <script>
тегами, и все будет правильно выделено. К сожалению, это нарушило бы работу моего приложения.
Кто-нибудь знает способ, которым я могу заставить подсветку работать для обоих языков без script
тегов?
Комментарии:
1. Это потому, что файл .js традиционно не анализируется PHP на веб-сервере. Предполагается, что это чистый javascript. Кроме того, на самом деле нет такого понятия, как «php-скрипт» — есть просто файлы, в которые встроен один или несколько блоков кода PHP. ЛЮБОЙ файл может быть файлом php, если блоки
<?php
and?>
не используются для других целей.2. Не уверен насчет IntelliJ IDEA, но большинство редакторов предполагают, что не PHP-код в PHP-скрипте — это HTML. Хотя это часто безопасное предположение, было бы здорово, если бы это не было жестко запрограммированным вариантом.
3. Включен ли у вас IntelliLang. Вы пробовали намерение «внедрить язык»?
4. Я изучил намерение «Внедрить язык», но все, что я видел, похоже, указывает на то, что это работает только для строковых литералов. Я хочу вывести то, что будет выглядеть как жестко закодированный массив javascript из php, а не строку javascript.