正确语法高亮 phpstorm 中的 javascript

Posted

技术标签:

【中文标题】正确语法高亮 phpstorm 中的 javascript【英文标题】:Correctly syntax-highlighting javascript in phpstorm 【发布时间】:2015-11-04 21:25:47 【问题描述】:

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

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

我无法在我的 .blade.php 文件中为我的 javascript 代码获得正确的语法高亮显示。正确突出显示 PHP 和 html。 如果我将javascript代码放在&lt;script&gt;标签中,突出显示效果很好,这就是其他开发人员迄今为止的工作方式,但在部署之前,您必须删除这些标签,否则将有2个打开和2个关闭&lt;script&gt;标签。我对更改父模板感到不舒服,因为这会导致大量的重构工作。 我已经尝试将此特定文件的模板数据语言设置为各种语言,但这没有帮助。

有没有简单的方法,还是我必须坚持在部署之前手动插入和删除&lt;script&gt; 标签?

我正在使用 PhpStorm 8.0.3。

【问题讨论】:

你的 js 代码(需要包含)在哪里?你能提供一个简单的示例文件吗?我的意思是 - 它是与其他 HTML/etc 片段一起在另一个文件中.. 还是在仅存在 JS 的单独文件中。如果 #1 - 除非你按照@Frisbetarian 的建议去做,否则什么都做不了;如果 #2 -- 那么模板数据语言应该在这里有所帮助。 您确定要查看js代码吗?我认为这只是噪音,会分散实际问题的注意力。它有效且有效。它是第一名,不幸的是,它看起来真的是我无能为力。但仍有希望有人会来用一些巫术解决这个问题。 【参考方案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,它认为您实际上是在添加 &lt;script&gt; 标签,但实际上您会将其注释掉。

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

诀窍是基于 !! X !! 实际上仅转换为 &lt;?php echo X; ?&gt; 的事实 - 通常它是一个用于显示您不想被 HTML 转义的文本的工具。

所以代码比变成

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

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

【讨论】:

【参考方案2】:

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

像这样:@yield('custom_js')

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

【讨论】:

但是我必须重构整个应用程序以在每个子视图中插入脚本标签。正如我所说,我正在寻找一种更简单、非破坏性的方法。 你希望Phpstorm如何识别没有脚本标签的JS代码? 我也看不到从父视图中删除脚本标签会导致巨大的开销。浏览视图并使用脚本标签手动包装 JS 不会超过 10 分钟。 解决办法真的在于不写内联js。生成自定义 js 背后的全部意义在于使用它需要的脚本/插件来定制每个视图。 让我们continue this discussion in chat.【参考方案3】:

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

我的“解决方案”(它很丑,所以我几乎不能称之为解决方案)是这样做的:

<script>

...some javascript...

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

...some javascript...

</script>

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

【讨论】:

【参考方案4】:

如果它仍然是实际的:

只需将标签放入您的 custom_js 文件并将您的代码放入其中。然后 PhpStorm 将正确突出显示所有内容。

【讨论】:

以上是关于正确语法高亮 phpstorm 中的 javascript的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHPStorm 中添加伏特语法检查

PhpStorm 无法识别 Php 文件

PhpStorm / WebStorm中的CoffeeScript JSDoc支持

phpstorm教程-相同单词高亮显示

phpstorm怎么设断点调试

有没有人遇到过在 iterm2 下 vim 语法高亮的问题