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

kdm*_*try 5 code-formatting keyboard-shortcuts intellij-idea phpstorm

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

$arr = [
    'test',
    'a' => 'b',
];
Run Code Online (Sandbox Code Playgroud)

我希望把它单行,我可以选择文本和使用Ctrl+ Shift+ J,我得到

$arr = ['test', 'a' => 'b', ];
Run Code Online (Sandbox Code Playgroud)

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

public function test($arg1, $arg2, $arg3, $arg4)
Run Code Online (Sandbox Code Playgroud)

和函数调用

test($arg1, $arg2, $arg3, $arg4);
Run Code Online (Sandbox Code Playgroud)

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

test(
    $arg1,
    $arg2,
    $arg3,
    $arg4
);
Run Code Online (Sandbox Code Playgroud)

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

kdm*_*try 2

自 IntelliJ IDEA 2019.2 起

\n\n

使用 IDE 中的新意图拆分任何列表:使用Alt+显示上下文操作Enter,然后选择选项将逗号分隔的值拆分为多行。当您想要将项目组合到一行中时,也可以使用相反的意图:Alt+Enter然后选择选项将逗号分隔的值连接到一行中

\n\n

gif 图像展示新意图

\n\n

IntelliJ IDEA 2019.2 之前

\n\n

垂直列表到水平列表(连接)

\n\n

选择应连接的项目并使用“连接线”命令Ctrl+ Shift+ J

\n\n

水平列表到垂直(分割)

\n\n

使用RealignerCtrl插件,您可以在“设置”>“插件”>“浏览存储库\xe2\x80\xa6”(或“市场”)中安装它\n它添加了带有快捷键+ Shift+ Alt+的 Split 命令P。调用此命令后,您将看到对话框,如下配置:

\n\n

按分隔符分割对话框

\n\n

分隔符仅为逗号,没有空格。\n单击“确定”后,插件将分割您的列表,但也会记住设置,因此将来您可以使用命令快捷方式分割任何列表,而Enter无需花费时间。但分割后的代码不会有缩进,需要运行Reformat Code。因此,我们可以分两步实现目标:

\n\n
    \n
  1. 拆分Ctrl+ Shift+ Alt+P然后Enter
  2. \n
  3. 重新格式化代码Ctrl++ Alt.L
  4. \n
\n\n

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

\n