用于PHP/HTML的VSCode格式代码命令

ste*_*low 22 php format visual-studio-code

是否有可能让VSCode在Windows VSCode v0.7.1上格式化混合的html/php代码?

小智 38

我安装了

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

"editor.defaultFormatter": "esbenp.prettier-vscode",
"[php]": {
  "editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
}
Run Code Online (Sandbox Code Playgroud)

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

现在我像其他人一样使用Shift++AltF格式化文件。

  • 您的回答值得更多人点赞!谢谢。 (3认同)

Zen*_*xer 17

截至v0.7.10,尚未.它仅适用于某些语言.一旦有更多的PHP集成,快捷方式将是Alt+ Shift+ F(⌥⇧F在Mac上).

更新2016-05-30:Visual Studio Code 现在提供了非常棒的PHP支持.扩展涵盖了它缺乏的内容.快速搜索揭示了至少三个(1,2,3),该权利要求,以支持PHP格式化.他们大多似乎在Windows/Linux上使用Alt+ Shift+ 的标准快捷F方式,在Mac上使用不同的快捷方式.如果您使用的是Mac,请⌥⇧F尝试一下.

  • 人.当VSCode对PHP有格式化支持时,我真的很期待. (9认同)
  • 嗯.他们都缺乏imo.format-php不处理函数范围注释格式.format-indent完全无法使用(Artur的"每次格式化后每行添加一个新的空行"对我来说也是如此).php-debug是荒谬的,因为它不是一站式解决方案 - 你必须修改你的php.ini文件,我必须修改几个,因为我的一些项目在VM中,一些在MAMP中.它也没有Mac文档,这很奇怪.我还在等待"PHP"格式化程序,它将使VSCode对我有用. (4认同)
  • 我仍然不能在Mac上为我工作. (2认同)
  • 年份差不多是2019年,我们仍然没有涵盖这一部分.美化扩展有时会工作正常,但在某些部分会混淆缩进,例如内部类方法 (2认同)
  • @AndrewKoster 自从我在这里写下答案以来的这些年里,我已经同意了。然而,当时(五年前)VSC 刚刚添加了 PHP 支持,而且它比 VSC 生态系统中以前存在的支持要好得多。从那以后的几年里,它一直无法跟上 PhpStorm 的步伐,并且在内在支持方面也没有真正的任何改进。我目前使用 VSC + Intelephense;它是可用的,但还有很多不足之处。 (2认同)

小智 8

对于混合 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,
Run Code Online (Sandbox Code Playgroud)


rif*_*i2k 5

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

因此,您可能会获得所有 HTML、CSS、JavaScript 代码,但忽略 PHP 代码。或者,如果您使用常规 PHP 格式化程序,则不存在可以正确处理 HTML 的格式化程序。

我继续制作了一个在保存钩子之前运行的扩展,并且没有注册为 PHP 格式化程序,因此它将使用js-beautify 处理所有 HTML,然后您可以使用 PHPCS + PHPCBF 之类的东西来格式化 HTML。因此,就我而言,它基本上是目前可用的最佳解决方案。

在 Visual Studio Code 市场上用 PHP 格式化 HTML


Red*_*y11 5

我使用bmewburn.vscode-intelephense-client并且它完美运行(除非存在语法错误)。

有一个高级版本;我不知道那效果如何。

在 GitHub 上

在 VSCode 市场上

官方网站


许多其他人提到的PHP扩展中的Format HTML确实有效,只是存在一些对齐问题,并且您必须分别格式化 HTML 和 PHP。


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