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

PhpStorm highlight part of file as JavaScript with custom start and end lines

本文关键字:一部分 文件 显示 JavaScript 自定义 开始 结束 PhpStorm      更新时间:2023-09-26

我继承了一个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,用一些PHP将占位符行之间的所有内容解释为JS,将文件的其余部分解释为HTML?

我知道文件结构非常糟糕,但我现在无法重构它。。。

感谢

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

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

我认为这个解决方案很好,因为您将永远记住JavaScriptPHP文件中。这必须被清除。。。



这两种解决方案都可以在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

可能不是你真正想要的,但如果你用脚本选项卡包围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+突出显示+PHP+内部+JavaScript+(和+其他+语言)