正确语法高亮 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代码放在<script>
标签中,突出显示效果很好,这就是其他开发人员迄今为止的工作方式,但在部署之前,您必须删除这些标签,否则将有2个打开和2个关闭<script>
标签。我对更改父模板感到不舒服,因为这会导致大量的重构工作。
我已经尝试将此特定文件的模板数据语言设置为各种语言,但这没有帮助。
有没有简单的方法,还是我必须坚持在部署之前手动插入和删除<script>
标签?
我正在使用 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,它认为您实际上是在添加 <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 */''; ?>
最后它只是“回显”空字符串。
【讨论】:
【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章