切断函数参数,但如果一个参数是多行数组并且行不长,则保持原样

时间:2017-04-13 18:46:51

标签: phpstorm phpstorm-2017.1

我一直在玩所有PhpStorm格式化选项,但如果按照我想要的方式行事,就无法找到方法。

所以基本上我想要PhpStorm:

1。转这个

myfunction('hello',
    'world');

进入这个:

myfunction(
    'hello',
    'world'
);

2。保持原样

myfunction([
    'hello' => 'world',
]);

这也不应该重新格式化:

myfunction($variableOne, [
    'hello' => 'world',
]);

这可能吗?

1 个答案:

答案 0 :(得分:2)

据我所知,这是不可能的。

现在获得这种能力

myfunction([
    'hello' => 'world',
]);

myfunction($variableOne, [
    'hello' => 'world',
]);

您可以在此位置设置选项:

enter image description here

但要在新行中设置不同参数的包装

myfunction(
    'hello',
    'world'
);

您需要另一个选项列表:

enter image description here

但在这种情况下,数组的包装不符合您的条件。

JetBrains issue tracker上留下您的功能请求。只有他们可以帮助您使用此功能。

您需要一些选项,例如Don't wrap array declaration

但你也有一次碰撞: 如果你想在这种情况下新线上的参数

myfunction(
    'hello',
    'world'
);

为什么你不想要这个?

myfunction(
    $variableOne, [
        'hello' => 'world',
    ]
);

myfunction(
    [
        'hello' => 'world',
    ]
);

或者甚至可能需要像Leave array declaration braces with comma/brace in method call这样的选项。在这种情况下,它将像

一样工作
myfunction($variableOne, [
    'hello' => 'world',
]);

myfunction([
    'hello' => 'world',
]);

但在这里你还需要一些选项,如Don't wrap argument if it no long and contain array declaration

恕我直言,解决此问题的最佳方法是留下功能请求,并详细描述包装规则,如下一步中的操作

myfunction($variableOne, $variableTwo, [
    'hello' => 'world',
]);

myfunction($variableOne, $variableTwo, [
    'hello' => 'world',
], [
    'another' => 'array',
]);

如何在方法调用中使用PHP 5.3-数组声明array('key' => 'value')