[英]Format code command for PHP/HTML in Visual Studio Code
是否可以讓 Visual Studio 代碼在 Windows Visual Studio Code 版本 0.7.1 上格式化混合 HTML 和 PHP 代碼?
我第一次寫這個答案已經有五年多了。 我最初鏈接的擴展被放棄了,Visual Studio Code 的內在 PHP 支持沒有得到改善,這令人失望。 我所知道的唯一像樣的擴展是PHP Intelephense ,它使用免費增值模式:基本功能是免費的,並且在撰寫本文時終身許可證為 12 美元。
Intelephense 的免費版本支持使用常用快捷鍵進行代碼格式化(在 Windows 和 Linux 上為Alt + Shift + F ,在 macOS 上為⌥⇧F )。 Visual Studio Code 仍然缺乏對 PHP 代碼格式的內置支持,如果您嘗試在未安裝適當擴展的情況下格式化 PHP,它將引導您進入擴展市場。
Visual Studio Code 有非常棒的 PHP 支持。 它缺少的東西被擴展覆蓋了。 快速搜索會發現至少三個( 1 、 2和3 )聲稱支持 PHP 格式。
他們似乎大多在 Windows/Linux 上使用Alt + Shift + F的標准快捷方式,在 Mac 上使用不同的快捷方式。 如果您使用的是 Mac,請嘗試使用⌥⇧F 。
大多數解決方案的問題在於它們都注冊為格式化提供程序,並且在 Visual Studio Code 中,您只能在保存特定文件類型時運行一個格式化程序。
因此,您可能會獲得所有 HTML、CSS、JavaScript 代碼,但忽略 PHP 代碼。 或者,如果您使用常規 PHP 格式化程序,則不存在可以正確處理 HTML 的格式化程序。
我繼續制作了一個在保存鈎子之前運行的擴展,並且沒有注冊為 PHP 格式化程序,因此它將使用js-beautify 處理所有 HTML,然后您可以使用 PHPCS + PHPCBF 之類的東西來格式化 HTML。 因此,就我而言,它基本上是目前可用的最佳解決方案。
在 Visual Studio Code 市場上用 PHP 格式化 HTML 。
對於混合 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,
我使用bmewburn.vscode-intelephense-client並且它完美運行(除非存在語法錯誤)。
有一個高級版本; 我不知道那效果如何。
許多其他人提到的PHP擴展中的Format HTML確實有效,只是存在一些對齊問題,並且您必須分別格式化 HTML 和 PHP。
phpcbf也是一個不錯的選擇,只不過它需要更多的定制,而且計算起來有點復雜。 這可能是好事也可能是壞事,這取決於你想要什么。
我已經嘗試了幾乎所有 Visual Studio Code 的格式擴展,我認為沒有一個可以正確/一致地處理混合 PHP/HTML 頁面的格式。
我在 Laravel 中編碼,我使用Format HTML In PHP來格式化 PHP 代碼中的 HTML 代碼。 它工作得很好。
我安裝了
更漂亮的 HTML、CSS 和 JavaScript 文件
用於 PHP 文件的PHP Intelephense
我按照每個插件的說明進行操作,但發現我必須另外手動編輯 settings.json 才能讓它們協同工作。
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[php]": {
"editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
這些設置使用 Intelephense 作為 PHP 文件的格式化程序,並使用 Prettier 作為所有其他文件的格式化程序。
現在我像其他人一樣使用Shift + Alt + F來格式化文件。
安裝擴展程序后。 設置>搜索>格式化並啟用“保存時格式化”然后編輯setting.json文件如下
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[php]": {
"editor.defaultFormatter": "bmewburn.vscode-intelephense-client",
"editor.formatOnSave": true
},
"editor.formatOnSave": true
保存>重新啟動 IDE 這對我有用.. :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.