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

如何在VS代码中将PHP代码大括号自动格式化为新行,php,visual-studio-code,php-cs-fixer,Php,Visual Studio Code,Php Cs Fixer,我目前正在使用VS代码的最新版本1.41.1(在撰写本文时) 我已经安装了PHPCSfixer来自动格式化我的代码。但是有一种行为我不喜欢。它总是将代码格式化如下: if (condition) { // code... } else { // code } 但这并没有给我很好的可读性 我希望做到这一点: if (condition) { // code... } else { // code } 在VS代码中是否有支持此PHP代码格式的扩展?或者PHP CS

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

我已经安装了PHPCSfixer来自动格式化我的代码。但是有一种行为我不喜欢。它总是将代码格式化如下:

if (condition) {
    // code...
} else {
    // code
}
但这并没有给我很好的可读性

我希望做到这一点:

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

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

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

  • 我必须在项目的根目录中创建一个名为
    .php\u cs
  • 将此代码块添加到文件中:

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

    也在寻找同样的东西。我尝试了激进组织给出的(被接受的)答案,但那对我不起作用。在此处找到另一个代码段:

    片段:

    <?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)
    ;
    

    假设这是一个极具争议的问题。有一个选项可以将带有规则的配置文件传递给扩展名。也许有一种方法可以满足您的需要。此外,在Visual Studio代码中,您不需要使用php cs来格式化代码-只需标记要格式化的代码,CTRL+K+CTRL+F。但请像其他人一样使用PSR2;)很高兴我能帮忙!