我有这个:
Arrays.asList(from(A, 14), from(A, 21), ...
我需要的是
Arrays.asList(of(from(A, 14), 1), of(from(A, 21), 2), ...
呼叫from(A, number)
应该变成of(from(A, number), anotherNumber)
。
换句话说:我必须通过将这样的from()
调用括在of()
中并添加第二个参数来更新冗长的列表。理想情况下,第二个参数只会向上计数。
使用IntelliJ重构工具可以做到这一点吗? (而不是手动完成所有操作)
并且请注意:我并不是在要求工具推荐。我在问一个已知的工具是否支持特定的重构情况。
答案 0 :(得分:2)
您可以突出显示from(
并使用“选择下一个出现”热键。选择所有出现的位置后,只需将其替换为of(from
。完成添加of
后,您可以使用“ alt +左箭头键”将光标移至您要添加数字的位置,或通过突出显示{{1}来使用“选择下一个出现位置” }。
在Mac上,热键是“ CTRL + G”,在Windows \ Linux上是“ ALT + J”。这是热键https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf
的列表它仍然有点手动,但要一步一步地做。
答案 1 :(得分:2)
您可以尝试以下操作:
from(A, param)
of(from(A, param), NNN)
NNN
(必须手动执行)如果有一些公式可以基于anotherNumber
计算number
,则可以使用它代替NNN
。
答案 2 :(得分:2)
“结构上替换”可以满足您的某些需求。
Edit
> Find
> Replace Structurally...
from($a$, $b$)
作为搜索模板of(from($a$, $b$), i)
作为替换模板Scope
:Current File
(如果愿意,可以选择Selection
)Find
Replace all
假设i
未定义,那么您将面临很多错误。您可以使用F2
遍历错误,并用所需的值替换未定义的i
。
奖金提示:在Mac上,在终端上运行seq 1 100 | pbcopy
,将数字1-100放入剪贴板。然后,在IntelliJ中使用多个光标,单击“粘贴”。 1
将粘贴在第一个光标上,2
将粘贴在第二个光标上,等等。