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

Posted

技术标签:

【中文标题】Visual Studio Code 中 PHP/HTML 的格式代码命令【英文标题】:Format code command for PHP/HTML in Visual Studio Code 【发布时间】:2015-11-21 01:09:21 【问题描述】:

是否可以让 Visual Studio Code 在 Windows Visual Studio Code 版本 0.7.1 上格式化混合的 htmlphp 代码?

【问题讨论】:

【参考方案1】:

更新 2021-07-21

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

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

原始答案

Visual Studio Code 有pretty awesome PHP support。 extensions 涵盖了它所缺少的内容。快速搜索会发现至少三个(1、2 和 3)声称支持 PHP 格式。

他们似乎在 Windows/Linux 上使用标准快捷键 Alt + Shift + F,在 Mac 上使用不同的快捷键。如果您使用的是 Mac,请尝试 ⌥⇧F

【讨论】:

男人。我真的很期待 VSCode 对 PHP 的格式支持。 @MartynChamberlin Visual Studio Code 现在拥有近乎完整的 PHP 支持,包括借助第三方扩展的格式支持。 code.visualstudio.com/Docs/languages/overview 嗯。他们都缺乏imo。 format-php 不处理函数范围的注释格式。 format-indent 完全无法使用(Artur 的“每次格式化时在每一行后添加一个新的空行”对我来说也是如此)。 php-debug 很荒谬,因为它不是一站式解决方案——你必须修改你的 php.ini 文件,而且我必须修改几个,因为我的一些项目在 VM 中,一些在 MAMP 中。它的 Mac 文档也为零,这很奇怪。我仍在等待让 VSCode 对我有用的“PHP 格式化程序”。 快到 2019 年了,我们仍然没有涵盖这部分内容。 Beautify 扩展有时可以正常工作,但会在某些部分弄乱缩进,例如内部类方法 @AndrewKoster 在我在这里写答案的这些年里,我已经同意了。然而,当时——五年前——VSC 刚刚添加了 PHP 支持,它比以前存在于 VSC 生态系统中的要好得多。从那以后的几年里,它一直无法跟上 PhpStorm,并且在内在支持方面也没有任何改进。我目前使用 VSC + Intelephense;它是可用的,但它还有很多不足之处。【参考方案2】:

要获得混合 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,

【讨论】:

这个设置对我有用,我已经安装了这个扩展,但我错过了这个设置。 太棒了,效果很好。为什么他们不在扩展常见问题解答中告诉设置? ):【参考方案3】:

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

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

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

Format HTML in PHP 在 Visual Studio Code 市场上。

【讨论】:

【参考方案4】:

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

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

On GitHub

On VSCode Marketplace

Official Site


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


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

【讨论】:

这是自最新的 VS Code 更新之一以来唯一帮助我的人 - 谢谢!【参考方案5】:

我安装了

Prettier 用于 HTML、CSS 和 JavaScript 文件

PHP Intelephense 用于 PHP 文件

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

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

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

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

【讨论】:

您的回答值得更多的支持!谢谢。 在哪里可以找到 settings.json 文件? 我通常只需按 [ctrl] + [,] 即可进入设置,然后单击标题栏下右上角出现的“打开设置 (JSON)”图标 这是另一个选项...VS Code: How to open settings.json file? 另一个选项:languagespecific-editor-settings "如果你有一个文件打开并且你想为这个文件类型自定义编辑器,在状态栏中选择 VS Code 右下角的语言模式窗口。这将打开语言模式选择器,其中包含配置“language_name”基于语言的设置选项。选择此选项将打开您的用户 settings.json,其中包含您可以添加适用设置的语言条目。”【参考方案6】:

我已经尝试了 Visual Studio Code 的几乎所有格式扩展,但我认为没有一个可以正确/一致地处理混合 PHP/HTML 页面的格式。

【讨论】:

【参考方案7】:

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

【讨论】:

不适合我,已经重新加载 vscode 仍然没有。似乎所有者在 github 问题上遇到了麻烦【参考方案8】:

将扩展Format HTML in PHP 添加到 Visual Studio Code。

或者使用“在 PHP 中格式化 HTML”在扩展中搜索。

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

【讨论】:

【参考方案9】:

转到 vs 代码中的扩展:

然后写:category:formatters php

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

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

【讨论】:

那是付费的,不是免费的。我现在在 laravel 项目中 @FoggyMindedGreenhorn 为高级功能付费。格式不包含在高级版中。

以上是关于Visual Studio Code 中 PHP/HTML 的格式代码命令的主要内容,如果未能解决你的问题,请参考以下文章