簡體   English   中英

如何在 Visual Studio Code 中使用 HTML 標記格式化 PHP 文件?

[英]How can I format PHP files with HTML markup in Visual Studio Code?

我正在使用 Laravel,因此所有視圖都是.blade.php文件。 由於 PHP 擴展,Visual Studio Code 不會格式化 HTML。 我刪除了文件名的“刀片”部分,但它仍然沒有正確格式化文件(通過Alt + Shift + F )。

我還嘗試了大約五個擴展,但沒有一個進行重新格式化。

如何在 Visual Studio Code 中格式化.blade.php文件?

擴展Beautify (來自 HookyQR)做得很好。 將 PHP 和任何其他文件擴展名類型添加到配置中。 正如Nico 所說,這是一個例子:

  1. 轉到用戶設置( Ctrl + Shift + P用戶設置(UI) 或Ctrl + , (逗號)

  2. 在上面的字段中搜索 Beautify。 然后單擊“在 settings.json 中編輯”以獲取“美化:配置”

  3. 對於“html”部分,添加“php”“blade”

    在此處輸入圖片說明 在此處輸入圖片說明

###用法

您可以直接調用它。 F1 ,然后寫Beautify 自動完成為您提供了兩個選擇, “美化文件”“美化選擇” 選擇您需要的那一款,它就能完成這項工作。 這是一種直截了當的直接方式

在此處輸入圖片說明

您還可以添加鍵綁定以獲得鍵盤快捷鍵 這是如何做到的:

  1. 打開 keybindings.json(轉到菜單FilePreferencesKeyboard Shortcuts

  2. 點擊上方。 打開並編輯文件keybindings.json

  3. 將以下內容添加到括號中,[]

     { "key": "alt+b", "command": "HookyQR.beautify", "when": "editorFocus" }

    選擇您想要的任何鍵,並確保不要覆蓋現有的鍵。 如果存在與否,首先在左側搜索。

    在此處輸入圖片說明

請注意,所有這些內容都在擴展的描述中得到了很好的記錄。

補充:刀片注意事項

(適用於@Peter Mortensen 澄清說明)

刀片或刀片.php

如果您對設置是blade還是blade.php感到困惑! 我來給你解決! blade 那是該語言的 vscode 關鍵字!

你怎么知道的 ?

首先,如果您打開語言列表,如下圖所示:

在此處輸入圖片說明

寫刀片

在此處輸入圖片說明

你可以看到Laravel Blade (blade) 語言關鍵字在括號中! 刀片

好吧,但如何檢查!

嘗試在設置中使用blade.php

在此處輸入圖片說明

嘗試美化

在此處輸入圖片說明

你會得到一個詢問什么語言(html、css、js)的上下文菜單!

在此處輸入圖片說明

所以它不起作用!

要真正知道! 放回blade 它會直接工作和美化!

它與刀片的配合效果如何

真棒答案! 是試一試,自己看看!

但是如果你問我! 我會說它和 html 一樣有效! 它可能太方便了! 您可能需要修復一些線路! 取決於您的期望和您的風格!

這里有一個插圖! 我故意弄壞了縮進

在此處輸入圖片說明

這里的美化結果:

在此處輸入圖片說明

Beautify (來自 HookyQR)確實解決了這個問題!

許多人在 HTML 配置中添加了“blade.php”和“php”。 Beautify 無法識別並手動選擇 HTML 模板。 相反,只需在 HTML 配置中添加“blade”即可解決所有問題。

我認為Beautify (by HookyQR) 可能會成功。 只需在其配置的 HTML 部分添加 'php' 和/或 'blade.php' 即可美化 PHP / Blade 視圖文件。

這個對我有用!

如果您想要一些開箱即用的功能,請在支持 Visual Studio Code 的 PHP 文件中添加嵌套 HTML 格式。

它使用html.format 的所有本機設置、保存時的格式等。試試PHP 中的擴展Format HTML 我做到了,因為其他所有解決方案都讓我很惱火,因為它沒有 100% 奏效。

我發現這個名為Format HTML in PHP 的擴展對我來說效果很好。

Andrew Schultz 提到了擴展名:“ 在 PHP 中格式化 HTML ”。

這確實是使用 HTML 標記格式化 PHP 文件的一個很好的擴展。 它還格式化包含在 PHP 文件中的 JavaScript 代碼。

而且。 好消息! 開發人員已經成功地包含 Laravel Blade.php 文件。 與此同時,我通過手動將語言從Blade切換到 PHP 來格式化 Visual Studio Code 中的 Laravel 刀片文件,然后我使用擴展名“ 在 PHP 中格式化 HTML ”,並使用Ctrl + Alt + F或右鍵單擊。 這對我很有效。

使用 php 中的一個新功能,vscode 似乎可以很好地格式化和突出顯示嵌入的 HTML。 (php 7.3,在發布問題后發布)添加了所謂的“heredoc”和“neardoc”字符串。 它們在這里有很好的描述: https : //andy-carter.com/blog/what-are-php-heredoc-nowdoc

基本上,你把你的 HTML 放在這樣的地方:

[php code.....]
echo
<<<HTML
   <div>
     <h1>This is a headline</h1>
    <p> this is a paragraph. lorem ipsum lorem ipsum blah black </p>
   </div>
HTML;
[^ don't forget the ;  follow with more php if you want]

它在屏幕上看起來很棒。

我在 PHP 中使用 Format HTML,它在包含 HTML 和 PHP 的文件中運行良好。 然而,它似乎並沒有格式化一個“純”的 php 文件,比如一個 Class.php 文件。 所以我也安裝了 Phpfmt,它在處理純 php 文件時做得很好,但破壞了混合內容文件中的縮進。 這是我得到的一個例子:

<?php
if (!$logged_in) {
    $login_form = 'data-toggle="modal" data-target="#Modal1"';
    $href = '#';
} else {
    $login_form = '';
    $href = 'members';
}
?>

打開的 php 標簽與 html 正確對齊。 '我看到在'支持的轉換'下它說:

AlignPHPCode:   Align PHP code within HTML block.

但正如你從上面看到的,它對我不起作用。 有什么建議??

這可以通過對".blade.php"使用 HTML 格式來完成:

  1. 打開命令面板Ctrl + Shift + P (在 PC 上))
  2. 輸入“首選項:打開設置(JSON) ”(這是打開settings.json
  3. 添加
    "files.associations": { "*.blade.php": "html", "*.tpl": "html" },

這會將.blade.php文件格式化為 HTML,但不會刪除 Blade 片段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM