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

时间:2015-07-01 07:04:09

标签: phpstorm wrapping reformatting

我对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');

我想配置设置:

  

代码样式/ 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');

当我选择第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');

我的问题是:

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

1 个答案:

答案 0 :(得分:2)

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

  
      
  1. 编辑器>代码样式 - 右边距(列) - 120 [screenshot]
  2.   
  3. 编辑器>代码风格> PHP>环绕和大括号(选项卡) - 链式方法调用 - 如果长时间缩短 [screenshot]
  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');

你应该从链接方法调用开始,而不是右边距(例如在你的例子中为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列的链式方法调用自动格式化,规则将不会触发,即

$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列