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 上格式化混合的 html 和 php 代码?
【问题讨论】:
【参考方案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 的格式代码命令的主要内容,如果未能解决你的问题,请参考以下文章
visual studio code(vscode) 调试php
visual studio code (vsc)中查看 php 数组的全部元素
如何在 Visual Studio Code 中使用 HTML 标记格式化 PHP 文件?