Visual Studio 代码中 PHP/HTML 的格式化代码命令

Format code command for PHP/HTML in Visual Studio Code

是否可以获取 Visual Studio 代码来格式化混合 HTML 和 PHP 代码 Windows Visual Studio 代码版本 0.7.1?

2021-07-21更新

距离我第一次写这个答案已经有五年多了。我最初链接到的扩展已被放弃,Visual Studio Code 的内在 PHP 支持没有得到改善,这令人失望。据我所知,唯一仍然存在的不错的扩展是 PHP Intelephense,它使用免费增值模式:基本功能是免费的,并且在撰写本文时终身许可证为 12 美元。

Intelephense 免费版支持使用常用快捷键格式化代码 (Alt + Shift + F 在 Windows 和 Linux、⌥⇧F 在 macOS 上)。 Visual Studio 代码仍然缺乏对 PHP 代码格式的内置支持,如果您在未安装适当扩展的情况下尝试格式化 PHP,它将引导您进入扩展市场。

原回答

Visual Studio 代码 pretty awesome PHP support. What it lacks is covered by extensions. A quick search reveals at least three (1, 2, and 3) 声称支持 PHP 格式。

他们似乎大多使用标准快捷键 Alt + Shift + F Windows/Linux,在 Mac 上有不同的快捷方式。如果你在 Mac,试试 ⌥⇧F

大多数解决方案的问题是它们都被注册为格式化提供程序,并且在 Visual Studio 代码中,您只能 运行 一个格式化程序来保存特定文件类型。

因此,您可能会得到所有 HTML、CSS、JavaScript 代码,但会遗漏 PHP 代码。或者,如果您使用常规 PHP 格式化程序,则不存在能够正确执行 HTML 的格式化程序。

我继续在保存挂钩之前进行了 运行 的扩展,并且没有注册为 PHP 格式化程序,因此它将使用 HTML =19=]js-beautify 然后你可以使用像 PHPCS + PHPCBF 这样的东西来格式化 HTML。因此,就我而言,它基本上是目前可用的最佳解决方案。

Format HTML in PHP 在 Visual Studio 代码市场上。

我在 Laravel 中编码,我正在使用 Format HTML In PHP 格式化 PHP 代码中的 HTML 代码。它运行良好。

将扩展名 Format HTML in PHP 添加到 Visual Studio 代码。

或在带有 "format HTML in PHP" 的扩展中搜索。

重新加载后,使用Shift + Alt + F.

混合 PHP、HTML 和 JavaScript 代码的最佳格式设置,只需使用 'PHP CS FIXER'.

然后在您的 setting.json 文件中使用这个简单的配置:

"php-cs-fixer.executablePath": "${extensionPath}\php-cs-fixer.phar",
"[php]": {
    "editor.defaultFormatter": "junstyle.php-cs-fixer",
    "editor.formatOnSave": true
},
"php-cs-fixer.rules": "@PSR2",
"php-cs-fixer.formatHtml": true,

我已经尝试了几乎所有 Visual Studio 代码的格式扩展,但我认为没有一个可以处理混合 PHP/HTML 页面的 correctly/consistently 格式.

我使用 bmewburn.vscode-intelephense-client,它运行良好(除非存在语法错误)。

有高级版;不知道效果如何。

On GitHub

On VSCode Marketplace

Official Site


很多人提到的 Format HTML in PHP extension 确实有效,除了有一些对齐问题,你必须格式化HTML 和 PHP 分开。


phpcbf 也是一个不错的选择,只是它需要更多的定制,而且计算起来有点复杂。这可能是好事也可能是坏事,取决于你想要什么。

我安装了

我按照每个插件的说明操作,但发现我必须额外手动编辑 settings.json 才能让它们协同工作。

      "editor.defaultFormatter": "esbenp.prettier-vscode",
      "[php]": {
          "editor.defaultFormatter": "bmewburn.vscode-intelephense-client"

设置使用 Intelephense 作为 PHP 个文件的格式化程序,并使用 Prettier 作为所有其他文件的格式化程序。

现在我使用 Shift + Alt + F 像其他人一样格式化文件.

转到 vs 代码中的扩展:

然后写:category:formatters php

按回车键。你会看到所有可用的格式化程序。现在安装你喜欢的那个。

然后在任何打开的 php 文件中右键单击,从弹出菜单中选择格式文档。