如何在 Visual Studio Code 中使用 HTML 标记格式化 PHP 文件?
Posted
技术标签:
【中文标题】如何在 Visual Studio Code 中使用 HTML 标记格式化 PHP 文件?【英文标题】:How can I format PHP files with HTML markup in Visual Studio Code? 【发布时间】:2017-05-10 21:16:54 【问题描述】:我正在使用 Laravel,所以所有视图都是 .blade.php
文件。由于 PHP 扩展,Visual Studio Code 不会格式化 html。我删除了文件名的“刀片”部分,但仍然没有正确格式化文件(通过 Alt+Shift+F) .
我还尝试了大约五个扩展,但没有一个可以重新格式化。
如何在 Visual Studio Code 中格式化 .blade.php
文件?
【问题讨论】:
VSCode Format code command for PHP/HTML的可能重复 VS Code 具有开箱即用的 HTML Intellisense,为了使用此插件实现您的目标,请转到主菜单 - 文件/首选项/设置,然后在您的用户设置中添加:“文件.associations": "*blade.php": "html" 它适用于任何模板扩展、树枝等。即使不重新启动 VS Code 也可以开始工作。 【参考方案1】:我认为Beautify (by HookyQR) 可能会成功。只需在其配置的 HTML 部分添加“php”和/或“blade.php”即可美化 PHP/Blade 视图文件。
它对我有用!
【讨论】:
回复“'blade.php'
”:不应该只是“'blade'
”吗?
如果没有对 Blade 文件的直接支持,为什么它比 OP 尝试的其他扩展更好?【参考方案2】:
扩展名Beautify(来自 HookyQR)做得很好。将 PHP 和任何其他文件扩展名类型添加到配置中。作为said by Nico,举个例子:
转到用户设置 (Ctrl + Shift + P → 用户设置 (UI) 或 Ctrl + ,(逗号)
在上面的字段中搜索美化。并点击 “在 settings.json 中编辑” 获得 “美化:配置”。
对于 "html" 部分,添加 "php" 和 "blade"。
###用法
您可以直接调用它。按F1,然后输入美化。 自动完成为您提供了两种选择,“美化文件”和“美化选择”。 选择您需要的,它就可以完成这项工作。这是一种直截了当的直接方式。
您也可以添加一个键绑定来获得一个键盘快捷键。操作方法如下:
打开 keybindings.json(进入菜单 File → Preferences → Keyboard Shortcuts)
点击上方。打开并编辑文件 keybindings.json
将以下内容添加到右括号中,[]
"key": "alt+b",
"command": "HookyQR.beautify",
"when": "editorFocus"
选择您想要的任何键,并确保您不会覆盖现有的键。存在与否先在左侧搜索。
请注意,所有这些内容都已在扩展程序的描述中详细记录。
额外:关于刀片的注意事项
(@Peter Mortensen 澄清说明套件)
blade 或blade.php
如果您对设置是blade
还是blade.php
感到困惑!我给你清理掉!这是blade
!那是语言的 vscode 关键字!
你怎么知道的?
首先,如果您如下图所示打开语言列表:
写刀片
你可以看到Laravel Blade (blade)
!语言关键字在括号中! 刀片!
好吧,但是如何检查!
在设置中尝试blade.php
!
尝试美化
你会得到一个询问什么语言(html、css、js)的上下文菜单!
所以它不起作用!
真正了解!放回blade
!
而且它会直接工作和美化!
它与刀片的工作情况如何
对此的真棒答案!试试看,自己看看!
但是如果你问我!我会说它确实可以与 html 一起使用!它可能太方便了!你可能需要修复一些线路!取决于您的期望和风格!
这里有一个插图!我故意搞砸了缩进
这里是美化结果:
【讨论】:
这几乎可以正常工作,它认为 PHP 标签正在打开 HTML 标签,并缩进它下面的所有内容 我刚刚添加了“blade”而不是“blade.php”,正如@Sam Dan 建议的那样 铅笔图标,在哪里? @Jonny 事情从那时起发生了变化! vscode 更新了它的设置管理界面!我会更新的!但是你需要做的是CTRL + SHIFT + P > user settings (UI)
然后点击edit on settings.json
。
文件“settings.json”中的"blade"
是否应该是"blade.php"
?为什么或为什么不?【参考方案3】:
Beautify(来自 HookyQR)确实解决了这个问题!
许多人将“blade.php”和“php”添加到 HTML 配置中。 Beautify 无法识别并手动选择 HTML 模板。相反,只需在 HTML 配置中添加“刀片”即可解决所有问题。
【讨论】:
我添加到我的用户配置"beautify.language": "js": "type": [ "javascript", "json", "jsonc" ], "filename": [ " .jshintrc", ".jsbeautifyrc" ] , "css": [ "css", "scss" ], "html": [ "htm", "html", "blade" ] , 这不是暗示 Blade 文件应该以“.blade
”(而不是“.blade.php
”)结尾吗?【参考方案4】:
如果您想要开箱即用的东西,请在 PHP 文件中添加嵌套 HTML 格式,支持 Visual Studio Code 应该已经具备。
它使用 html.format 的所有原生设置、保存时的格式等。试试扩展名 Format HTML in PHP。我之所以成功,是因为其他所有解决方案都让我烦恼,因为它没有 100% 有效。
【讨论】:
你指的是哪个原生设置?【参考方案5】:我发现 this extension 名为 Format HTML in PHP 非常适合我。
【讨论】:
重复上一个答案?【参考方案6】:Andrew Schultz mentioned 扩展名:“Format HTML in PHP”。
这确实是使用 HTML 标记格式化 PHP 文件的一个很好的扩展。它还格式化 PHP 文件中包含的 JavaScript 代码。
此外。好消息!开发人员已经成功地包含 Laravel Blade.php 文件。与此同时,我通过手动将语言从Blade 切换到 PHP 来格式化 Visual Studio Code 中的 Laravel 刀片文件,然后我使用带有 Ctrl + Alt 的扩展名“Format HTML in PHP” + F 或右键单击。它对我很有用。
【讨论】:
【参考方案7】:这可以通过对 ".blade.php" 使用 HTML 格式来完成:
-
打开 Command Palette(Ctrl + Shift + P(在 PC 上))
键入“Preferences:Open Settings (JSON)”(这是为了打开 settings.json)
添加
"files.associations":
"*.blade.php": "html",
"*.tpl": "html"
,
这会将 .blade.php 文件格式化为 HTML,但不会删除 Blade sn-ps。
【讨论】:
为什么*
用于第一项,而不是第二项 (".tpl"
)?【参考方案8】:
使用 php 中的一个新功能,vscode 似乎可以漂亮地格式化和突出嵌入的 HTML。 (php 7.3,在问题发布后发布)添加了所谓的“heredoc”和“neardoc”字符串。它们在这里得到了很好的描述:https://andy-carter.com/blog/what-are-php-heredoc-nowdoc。
基本上,你把你的 HTML 写成这样:
[php code.....]
echo
<<<HTML
<div>
<h1>This is a headline</h1>
<p> this is a paragraph. lorem ipsum lorem ipsum blah black </p>
</div>
HTML;
[^ don't forget the ; follow with more php if you want]
它在屏幕上看起来很棒。
【讨论】:
【参考方案9】:我在 PHP 中使用 Format HTML,它在包含 HTML 和 PHP 的文件中运行良好。但是,它似乎没有格式化“纯”php 文件,例如 Class。所以我还安装了 Phpfmt,它对纯 php 文件做得很好,但破坏了混合内容文件中的缩进。这是我得到的一个例子:
<?php
if (!$logged_in)
$login_form = 'data-toggle="modal" data-target="#Modal1"';
$href = '#';
else
$login_form = '';
$href = 'members';
?>
开始的 php 标记与 html 正确对齐。 '我在'支持的转换'下看到它说:
AlignPHPCode: Align PHP code within HTML block.
但正如您从上面看到的,它对我不起作用。有什么建议吗??
【讨论】:
以上是关于如何在 Visual Studio Code 中使用 HTML 标记格式化 PHP 文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Visual Studio Code 中运行 Python
Deepin系统中如何安装Visual Studio Code