在phpstorm中正确语法突出显示javascript

在phpstorm中正确语法突出显示javascript,javascript,laravel,phpstorm,syntax-highlighting,blade,Javascript,Laravel,Phpstorm,Syntax Highlighting,Blade,在我正在处理的现有laravel应用程序中,.blade.php文件包含一个主体部分,其中包含我的html和php。在body部分之后,它们包含一个用于插入javascript代码的自定义_js部分。在父模板中,自定义_js部分嵌入如下: <script> @include('custom_js') </script> 对于我的javascript代码,我无法在.blade.php文件中获得正确的语法高亮显示。Php和html正确突出显示。 如果我将javascript

在我正在处理的现有laravel应用程序中,.blade.php文件包含一个主体部分,其中包含我的html和php。在body部分之后,它们包含一个用于插入javascript代码的自定义_js部分。在父模板中,自定义_js部分嵌入如下:

<script>
@include('custom_js')
</script>
对于我的javascript代码,我无法在.blade.php文件中获得正确的语法高亮显示。Php和html正确突出显示。 如果我将javascript代码放在标记中,高亮显示效果很好,这也是其他开发人员迄今为止的工作方式,但在部署之前,您必须删除这些标记,否则将有2个开始标记和2个结束标记。我对更改父模板感到不舒服,因为这将导致巨大的重构工作。 我已经尝试将此特定文件的模板数据语言设置为多种语言,但没有帮助

是否有一种简单的方法,或者在部署之前必须坚持手动插入和删除标记


我正在使用PhpStorm 8.0.3。

您需要在父刀片视图中生成自定义的_js

像这样:@yield'custom_js'


无需将其包装在脚本标记中。

哇。我真的很惊讶phpstorm不能自动为您做突出显示-事实上,我甚至找不到强制语法突出显示的选项,这非常令人失望,因为notepad++只需点击两次就可以完成

我的解决方案很难看,所以我很难称之为解决方案,就是这样做:

<script>

...some javascript...

</script>
@include("customJavascript")
<script>

...some javascript...

</script>
然后在包含javascript片段的每个blade.php中都有打开和关闭脚本标记。但这确实很混乱,所以我希望有人能找到一个更好的解决方案,让代码井然有序。

如果它仍然是实际的:

只需将标签放入自定义的_js文件中,并将代码放入其中。PhpStorm将正确地突出显示所有内容。

最好的解决方案是

…是使用注释式语言暗示-类似

// @lang JavaScript
someCode();
// @endlang
语言注入也描述了类似的情况,但我无法以这种方式完成这项工作:/-如果我这样做了,我会更新它,我已经在这里开始了一个关于通用问题的单独问题:

不那么漂亮的方式

…是直接使用语言注入-右键单击代码并单击ShowContext actions或Alt+Enter=>select Inject Language或reference=>select Language of the Selection,虽然这会突出显示JavaScript,但对我来说,它会部分损坏文件的其余突出显示

丑陋但通用的工作解决方案

…是以一种欺骗PHPStorm的方式,它认为您实际上是在添加标记,但实际上您将注释掉它

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

最后,它只是回显空字符串。

但是我必须重构整个应用程序,在每个子视图中插入脚本标记。正如我所说的,我正在寻找一种更简单、无损的方法。你希望Phpstorm如何在没有脚本标记的情况下识别JS代码?我也不认为从父视图中删除脚本标记会造成巨大的开销。浏览视图并用脚本标记手动包装JS不会花费您超过10分钟的时间。解决方案实际上在于不编写内联JS。定制js背后的全部要点是使用所需的脚本/插件来定制每个视图。让我们来看看,需要包含在其中的js代码在哪里?你能提供一个简单的示例文件吗?我的意思是-它和其他HTML/etc片段一起存在于另一个文件中。。或者是在单独的文件中,其中只存在JS。如果1-除非你按照@Frisbetarian的建议去做,否则什么也做不了;如果2-那么模板数据语言应该在这里有所帮助。你确定要查看js代码吗?我想那只是噪音,分散了人们对实际问题的注意力。它有效且有效。这是1,不幸的是,看起来我无能为力。但还是有希望有人会来用巫术解决这个问题。
<?php echo /* JS syntax highlighter; ?><script><?php echo */''; ?>