Eclipse 模板,用于将可迭代选区包装在每个循环中

2022-09-04 23:06:59

我想选择一个可迭代的,按Alt + Shift + Z获取“环绕”上下文菜单,并显示一个前包装模板,该模板将以适当的格式将所选内容包装在每个循环中。

例如,我想选择

someObject.getSomeList()

并生成此

for (SomeListType someListType : someObject.getSomeList()) {

}

我尝试过这样的东西,但它似乎不起作用:

for( ${t:elemType(ls)} ${:name(t)} : ${ls:line_selection} )
{
    ${cursor}
}

答案 1

使用QuickFix(在Win / Lin或Mac上)。Ctrl+1Cmd+1

您可以使用以下方法获得所需的行为:

  1. 编写返回可迭代集合的语句,例如

    someObject.getSomeList()
    
  2. 按(在Mac上)并选择(此操作甚至有直接组合(Mac上的Cmd + 2 L),但是,如果要使用它,则可能取决于您要记住多少不同的组合)Ctrl+1Cmd+1Assign statement to a new local variable

  3. 写入不超过

    fore
    

    并再次按(),然后选择(只需在快速修复菜单出现后按Enter键,此时通常就足够了),您将获得如下结果:Ctrl+1Cmd+1Iterate over an array or iterable

    for (Content content : someList) {
    
    }
    

现在,您甚至可以内联局部变量的用法以再次摆脱它(当然,使用QuickFix;)。QuickFix非常强大,自从该功能发布以来,我几乎没有使用过任何模板。


答案 2

推荐