PHPStorm。重新格式化代码。链式方法调用包装

PHPStorm。重新格式化代码。链式方法调用包装,phpstorm,word-wrap,reformatting,Phpstorm,Word Wrap,Reformatting,我有一些关于PHPSForm代码重新格式化的问题 我有长线和单线 $this->getSelect()->join('some_code_here')->join('some_code_here')->join('some_code_here')->join('some_code_here')->join('some_code_here'); $this->getSelect()->join('some_code_here')->join('

我有一些关于PHPSForm代码重新格式化的问题

我有长线和单线

$this->getSelect()->join('some_code_here')->join('some_code_here')->join('some_code_here')->join('some_code_here')->join('some_code_here');
$this->getSelect()->join('some_code_here')->join('some_code_here');
我要配置以下设置:

代码样式/PHP/包装和大括号/链接方法调用

此设置有4种变体:

Do not wrap (1)
Wrap if long (2)
Crop down if long (3)
Wrap always (4)
当我选择2或3时,我有以下几点:

    $this->getSelect()->join('some_code_here')->join('some_code_here')->join('some_code_here')->join(
        'some_code_here'
    )->join('some_code_here');
    $this->getSelect()->join('some_code_here')->join('some_code_here');
当我选择第四时,我有:

    $this->getSelect()
        ->join('some_code_here')
        ->join('some_code_here')
        ->join('some_code_here')
        ->join('some_code_here')
        ->join('some_code_here');
    $this->getSelect()
        ->join('some_code_here')
        ->join('some_code_here');
我的问题是: 只有当方法非常长(超过120个符号)时,才有可能从新行包装每个调用

预期结果:
要获得所需的自动格式化,请使用以下设置:

  • 编辑器>代码样式-右边距(列)-120[]
  • 编辑器>代码样式>PHP>包装和大括号(选项卡)-链接的方法调用-如果长,则切掉
  • 注意:要获得所需的自动格式,如下所示:

    $this->getSelect()
        ->join('some_code_here')
        ->join('some_code_here')
        ->join('some_code_here')
        ->join('some_code_here')
        ->join('some_code_here');
    $this->getSelect()->join('some_code_here')->join('some_code_here');
    
    您应该从比右边距长的链式方法调用开始(例如,在您的示例中为120):

    如果使用长度小于120列的链式方法调用自动格式化,则不会触发规则,即

    $this->getSelect()
        ->join('some_code_here')->join('some_code_here')->join('some_code_here')
        ->join('some_code_here')->join('some_code_here');
    $this->getSelect()->join('some_code_here')->join('some_code_here');
    

    不会触发自动格式化规则,因为链接方法调用不超过120列

    谢谢您的响应,但是如果我们有长链-每个函数必须从新行开始。Hi@zhartaunik。我的答案中的配置将完全按照问题“预期结果”部分中的描述自动格式化代码。你的评论让我对自动格式化的预期最终结果感到困惑。也许您应该尝试一下此配置。如果我们在重新格式化代码后使用您的方法,我们将收到以下消息:
    $this->getSelect()->join('some_code_here')->join('some_code_here')->join('some_code_here')->join('some_code_here')->join('some_code_here');
    $this->getSelect()->join('some_code_here')->join('some_code_here');
    
    $this->getSelect()
        ->join('some_code_here')->join('some_code_here')->join('some_code_here')
        ->join('some_code_here')->join('some_code_here');
    $this->getSelect()->join('some_code_here')->join('some_code_here');