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

zha*_*nik 10 word-wrap reformatting phpstorm

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

我有长线和单线.

$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');
Run Code Online (Sandbox Code Playgroud)

我想配置设置:

代码样式/ PHP/Wrapping和Braces/Chained方法调用

此设置有4种变体:

Do not wrap (1)
Wrap if long (2)
Crop down if long (3)
Wrap always (4)
Run Code Online (Sandbox Code Playgroud)

当我选择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');
Run Code Online (Sandbox Code Playgroud)

当我选择第4名时,我有:

    $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');
Run Code Online (Sandbox Code Playgroud)

我的问题是:

是否有可能从新行包装每个调用,只有方法很长(超过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');
Run Code Online (Sandbox Code Playgroud)

use*_*906 4

要获得所需的自动格式设置,请使用以下设置:

  1. 编辑器 > 代码样式 -右边距(列) - 120 [屏幕截图]
  2. 编辑器 > 代码样式 > 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');
Run Code Online (Sandbox Code Playgroud)

您应该从比您的右边距长的链式方法调用开始(即示例中的 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');
Run Code Online (Sandbox Code Playgroud)

如果您使用长度小于 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');
Run Code Online (Sandbox Code Playgroud)

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