如何将 PHP 代码大括号自动格式化为 VS Code 中的新行

How to auto format PHP code curly braces to new lines in VS Code

我目前正在使用 VS Code 的最新版本 1.41.1(在撰写本文时)。

我已经安装了 PHP CS Fixer 来自动格式化我的代码。但是有一种行为我不喜欢。它总是像这样格式化代码:

if (condition) {
    // code...
} else {
    // code
}

但这并没有给我很好的可读性。

我想实现这个:

if (condition)
{
    // code...
}
else
{
    // code
}

在 VS Code 中是否有支持此代码格式的扩展 PHP?或者 PHP CS Fixer 中是否有任何选项可以跳过格式化这些大括号?还有其他选择吗?

根据@Nicolas 的评论,我分两步完成。

  1. 我必须在项目的根目录中创建一个名为 .php_cs
  2. 的文件
  3. 将此代码块添加到文件中:

    <?php
    
    return PhpCsFixer\Config::create()
    ->setRules(array(
        'braces' => array(
            'position_after_anonymous_constructs' => 'next',
            'position_after_control_structures' => 'next',
        )
    ));
    

全部完成,效果非常好。感谢@Nicolas 的帮助!

也在找同样的东西。我尝试了 Radical_activity 给出的(接受的)答案,但这对我不起作用。在这里找到了另一个片段:

片段:

<?php

$finder = PhpCsFixer\Finder::create()
    //->exclude('somedir')
    //->notPath('src/Symfony/Component/Translation/Tests/fixtures/resources.php'
    ->in(__DIR__)
;

return PhpCsFixer\Config::create()
    ->setRules([
        '@PSR2' => true,
        'strict_param' => false,
        'array_syntax' => ['syntax' => 'long'],
        'braces' => [
            'allow_single_line_closure' => true, 
            'position_after_functions_and_oop_constructs' => 'same'],
    ])
    ->setFinder($finder)
;

您还需要从中在您的存储库中创建一个 .php_cs 文件。 这对我有用!