PhpStorm将文件的一部分突出显示为具有自定义和开始和结束行的JavaScript

时间:2014-10-23 15:26:51

标签: javascript php phpstorm

我继承了一个PHP项目,其中包含几个具有以下结构的HTML文件

<?php $this->placeholder('dom.ready')->captureStart(); ?>

    var some = javascript.goesHere();

<?php $this->placeholder('dom.ready')->captureEnd(); ?>

<div class="some html goes here">

   <h1> <?php echo "with some php in the middle"; ?> </h1>

</div>

是否有可能将Phpstorm配置为将占位符行之间的所有内容解释为JS,将其余文件解释为带有PHP的HTML?

我知道文件结构非常不幸,但我暂时无法重构...

由于

2 个答案:

答案 0 :(得分:1)

至少有两种有趣的可能性...

1。 Heredoc 表示法

https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

对我来说,最有趣的解决方案是使用 heredoc 语法将 JavaScript 转换为 PHP 字符串:

<div>
    <div>
        <?php $this->placeholder('dom.ready')->captureStart(); ?>
        <?= <<<JS
            var some = javascript.goesHere();
JS
        ?>
        <?php $this->placeholder('dom.ready')->captureEnd(); ?>
    </div>
</div>

确保将结束标识符放在行的第一列

2。更改文件名

当您将文件扩展名从.php更改为.js.php时, PhpStorm 还将突出显示 JavaScript

我认为该解决方案很好,因为您会永远记住 JavaScript 在您的 PHP 文件中。这必须清除...



这两个解决方案都在 jetbrains.com 上找到。感谢Andriy Bazanov:

https://intellij-support.jetbrains.com/hc/en-us/community/posts/207046645-Zend-framework-and-code-formating-in-view-files

https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000790544-Syntax-Highligth-on-some-special-cases

答案 1 :(得分:0)

可能不是你想要的,但如果用脚本选项卡包围javascript,phpstorm会把它解释为js。您需要将代码更改为:

<script>
<?php $this->placeholder('dom.ready')->captureStart(); ?>

    var some = javascript.goesHere();

<?php $this->placeholder('dom.ready')->captureEnd(); ?>
</script>
<div class="some html goes here">

   <h1> <?php echo "with some php in the middle"; ?> </h1>

</div>

本文说,您可以使用两个文件扩展来完成类似的操作,而无需使用脚本标记。

https://confluence.jetbrains.com/display/PhpStorm/Syntax+highlighting+of+PHP+inside+JavaScript+(and+other+languages)