PHPStorm. Reformat code. Chained method call wrapping

|▌冷眼眸甩不掉的悲伤 提交于 2021-02-04 22:10:29

问题


I have some questions regards to phpstorm code reformat.

I have long line and single line.

$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');

I want to configure setting:

Code style / PHP / Wrapping and Braces / Chained method calls

This setting has 4 variants:

Do not wrap (1)
Wrap if long (2)
Crop down if long (3)
Wrap always (4)

When I choose 2 or 3 I have following:

    $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');

When I choose 4th, I have:

    $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');

My question is:

Is there any possibility wrap every call from new line, only if method is very long (more than 120 symbols).

Expected result:

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


To get the desired auto-formatting use the following settings:

  1. Editor > Code Style - Right margin (columns) - 120 [screenshot]
  2. Editor > Code Style > PHP > Wrapping and Braces (tab) - Chained method calls - Chop down if long [screenshot]

Note: To get the desired auto-formatting like this:

$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');

you should start with a chained method calls longer than your right margin (i.e. 120 in your example):

$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');

If you auto-format with a chained method calls with length less than 120 columns the rule will not trigger i.e. this

$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');

will not trigger the auto-formatting rule since the chained method calls does not exceed 120 columns



来源:https://stackoverflow.com/questions/31154610/phpstorm-reformat-code-chained-method-call-wrapping

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!