在我正在使用的现有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。
答案 0 :(得分:1)
最好的解决方案是
...用于使用注释样式的语言提示-类似于
// @lang JavaScript
someCode();
// @endlang
用语言注入描述了类似的东西,但是我无法以这种方式完成这项工作:/-如果这样做,我将对其进行更新,我在这里就通用问题提出了一个单独的问题:
How to set syntax highlighting to a code section to a specific language programatically/with comments?
更漂亮的方式
...是直接使用语言注入-右键单击代码,然后单击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转义的文本的工具。
所以代码变成了
<?php echo /* JS syntax highlighter; ?><script><?php echo */''; ?>
最后,它只是“ echos”空字符串。
答案 1 :(得分:0)
您需要在父刀片视图中生成custom_js。
像这样:@yield('custom_js')
无需将其包装在脚本标记中。
答案 2 :(得分:0)
哇。我真的很惊讶,phpstorm无法自动为你突出显示 - 事实上,我甚至找不到强制语法突出显示的选项,这非常令人失望,因为记事本++可以用2做点击次数。
我的解决方案&#34; (这很难看,所以我很难称之为解决方案)是这样做的:
<script>
...some javascript...
</script>
@include("customJavascript")
<script>
...some javascript...
</script>
然后在包含javascript片段的每个包含的blade.php中打开和关闭脚本标记。这真的很麻烦,所以我希望有人有更好的解决方案来使代码有序。
答案 3 :(得分:0)
如果它仍然是实际的:
只需将标记放入custom_js文件并将代码放入其中即可。 PhpStorm会正确地突出显示所有内容。