簡體   English   中英

VS Code PHP 使用 Stroustrup 風格的大括號(K&R 變體)和括號中的空格自動格式化/美化?

[英]VS Code PHP auto-formatting / beautify with Stroustrup style braces (K&R variant) and spaces in parentheses?

幫助我 Stack Overflow,你是我唯一的希望。

我想使用以下規則將 VS Code 中的自動格式化應用於 PHP 文件:

  • Stroustrup 式牙套(K&R 變體)
  • 條件前的空格
  • function 后的空格
  • 括號中的空格

屏幕截圖中的示例。 Stroustrup 大括號和空格

不想應用 PSR-1 或 PSR-2 或 PSR-12 或 CakePHP 或 WordPress 標准。

我一直在努力:

  • VS 代碼內部 PHP 格式化程序
  • phpfmt (最后一次更新是在 2018 年,存檔在 GitHub 上)
  • PHP Intelephense(據我所知,這與格式化無關)

phpfmt 是最接近的,但超級錯誤。

VS Code 設置明智,我滾動:

  • "files.autoSave": "onFocusChange",
  • “editor.formatOnSave”:真,

所以我想立即美化我的 PHP 文件,拜托。

謝謝你的任何想法!

我終於坐下來想辦法做到這一點。 這是從 Ubuntu 的角度來看的,但我應該認為它也可以在其他平台上工作。

我測試了一堆 linter/fixer 擴展,沒有真正的進展,直到我結束了這個

安裝一個 phpcs/phpcbf 版本以及擴展可以使用的規則集有點涉及,所以我將它們全部捆綁在一個docker 容器中(當然,一切都可以在本地完成,當然也可以使用 composer 完成)。

我還沒有找到可以在 OP 中強制執行兩個空格規則的規則(條件前的空格和函數后的空格),但是可以進行很多自定義,包括編寫自己的嗅探(而且我看起來並不超級很難說實話)。 但是上面鏈接的項目中的默認規則集/標准允許額外的空格,所以我覺得這是成功的一半。

對於其他規則,以下是所需的顯式部分,但請查看資源: 12 ,並在創建自定義規則集時啟用"phpsab.snifferShowSources": true"phpsab.debug": true

  • Stroustrup 式牙套(K&R 變體)
<rule ref="Generic.Functions.OpeningFunctionBraceKernighanRitchie">
</rule>
<rule ref="Drupal.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis">
</rule>
  • 括號中的空格
<rule ref="PSR2.ControlStructures.ControlStructureSpacing">
  <properties>
    <property name="requiredSpacesAfterOpen" value="1" />
    <property name="requiredSpacesBeforeClose" value="1" />
  </properties>
</rule>

暫無
暫無

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

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