正确语法高亮javascript在phpstorm

Correctly syntax-highlighting javascript in phpstorm

本文关键字:phpstorm javascript 高亮 语法      更新时间:2023-09-26

在我正在开发的现有laravel应用程序中,.blade.php文件包含一个body部分,其中包含我的html和php。在body部分之后,它们包含一个custom_js部分,用于插入javascript代码。在父模板中,custom_js部分是这样嵌入的:

<script>
@include('custom_js')
</script>

我不能得到正确的语法高亮在我的。blade.php文件为我的javascript代码。Php和html正确高亮显示。
如果我把javascript代码放在<script>标签内,突出显示工作得很好,这就是其他开发人员到目前为止的工作方式,但在部署之前,你必须删除这些标签,否则会有2个打开和2个关闭<script>标签。我不喜欢修改父模板,因为那会导致大量的重构工作。
我已经尝试将这个特定文件的模板数据语言设置为各种语言,但没有帮助。

是否有一个简单的方法,或者我必须坚持在部署之前手动插入和删除<script>标签?

我使用的是PhpStorm 8.0.3

最佳解决方案是

…是使用注释风格的语言提示——比如

// @lang JavaScript
someCode();
// @endlang

用语言注入描述了类似的东西,但我无法以这种方式使此工作:/-如果我这样做,我会更新此,我已经开始了一个关于通用问题的单独问题:
如何将语法高亮设置为代码部分以编程方式/带有注释的特定语言?

…是直接使用语言注入-右键单击代码并单击Show context actions(或Alt+Enter) =>选择Inject language or reference =>选择您选择的语言,虽然这确实突出显示了JavaScript,但对我来说,它损害了文件的其余部分的突出显示。

丑陋但通用的解决方案

…是欺骗PHPStorm,让它以为你实际上是在添加一个<script>标签,但实际上你会把它注释掉。

{!! /* JS syntax highlighter !!}<script>{!! */'' !!}
var following = "javascript";
var doer = () => {
   console.log(following);
};

这个技巧是基于{!! X !!}实际上被转换为<?php echo X; ?>的事实-通常它是一个显示你不想被html转义的文本的工具。

所以代码than变成了

<?php echo /* JS syntax highlighter; ?><script><?php echo */''; ?>

最后它只是"回显"空字符串

您需要在父刀片视图中生成custom_js。

像这样:@yield('custom_js')

哇。我真的很惊讶phpstorm不能自动为你做高亮显示——事实上,我甚至找不到一个选项来强制语法高亮显示,这是非常令人失望的,因为notepad++可以通过2次点击来完成。

我的"解决方案"(它很丑,所以我很难称之为解决方案)是这样做的:

<script>
...some javascript...
</script>
@include("customJavascript")
<script>
...some javascript...
</script>

,然后在每个包含javascript片段的blade.php中都有打开和关闭脚本标签。这确实是混乱的,虽然,所以我希望有人有一个更好的解决方案,使代码有序

如果它仍然是实际的:

只需将标签放入您的custom_js文件中,并将代码放入其中。PhpStorm会正确地高亮所有内容