水平列表到垂直列表,反之亦然 - IntelliJ IDEA based IDE

Horizontal list to vertical list and vice versa - IntelliJ IDEA based IDE

在 IntelliJ IDEA 和基于它的 IDE PhpStorm 中是否有键盘快捷键将水平列表转换为垂直列表,反之亦然?例如我有数组

$arr = [
    'test',
    'a' => 'b',
];

我想让它成为单行,我可以 select 文本并使用 Ctrl + Shift + J, 我得到

$arr = ['test', 'a' => 'b', ];

差不多好了,我可以手动删除最后一个,。但是如何做相反的事情:将水平列表转换为垂直列表?它不仅与数组有关,这个问题还与函数签名有关,例如

public function test($arg1, $arg2, $arg3, $arg4)

和函数调用

test($arg1, $arg2, $arg3, $arg4);

有时字符串变得太长,需要将其拆分以提高可读性,如下所示:

test(
    $arg1,
    $arg2,
    $arg3,
    $arg4
);

请注意,这个问题不是关于代码折叠的,我想真正改变格式,而不仅仅是为我显示隐藏。

自 IntelliJ IDEA 2019.2

使用 IDE 中的新意图拆分任何列表:使用 Alt + Enter 显示上下文操作,然后选择选项 将逗号分隔值分成多行。反向意图也适用于您想要将项目组合成一行的情况:Alt + Enter 然后选择选项 Join逗号分隔的值到一行.

IntelliJ 之前 IDEA 2019.2

垂直列表到水平列表(合并)

Select 需要连接的项目并使用连接线命令 Ctrl + Shift + J .

水平列表到垂直列表(拆分)

使用Realigner插件,您可以在设置>插件>浏览存储库中安装它...(或市场) 它添加了带有快捷键 Ctrl + Shift + Alt + P[= 的拆分命令62=]。调用这个命令后你会看到对话框,配置如下:

分隔符只能是逗号,不能有空格。 单击 "OK" 插件后将拆分您的列表,但也会记住设置,因此将来您可以使用命令快捷方式拆分任何列表然后 Enter 而无需花费时间。但是拆分后的代码不会有缩进,需要运行重新格式化代码。因此,我们可以分两步实现目标:

  1. 拆分 Ctrl + Shift + Alt + P 然后 输入 .
  2. 重新格式化代码 Ctrl + Alt + L.

它并不完美,但比手动编辑要好。潜在问题:Realigner 不分析代码,它只是按分隔符拆分文本。 最好为这些命令创建一个宏并为其添加快捷方式,我试过但没有成功,创建宏很容易但结果是错误的。