8

我一直在使用所有 PhpStorm 格式化选项,但找不到一种方法来让我按照我想要的方式行事。

所以基本上我希望 PhpStorm 能够:

1.转这个

myfunction('hello',
    'world');

进入这个:

myfunction(
    'hello',
    'world'
);

2.保持原样

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

这也不应该被重新格式化:

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

这可能吗?

4

1 回答 1

4

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

现在得到这个能力

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

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

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

在此处输入图像描述

但是要在新行中设置不同参数的换行

myfunction(
    'hello',
    'world'
);

你需要另一个选项列表:

在此处输入图像描述

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

将您的功能请求留在JetBrains 问题跟踪器上。只有他们可以帮助您使用此功能。

您需要一些选项,例如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')方法调用中的数组声明。

于 2017-04-23T13:28:49.167 回答