Шаблон Eclipse для переноса итерируемого выделения в каждом цикле - PullRequest
13 голосов
/ 19 августа 2010

Я хочу выбрать Iterable, нажмите Alt + Shift + Z, чтобы получить контекстное меню «Окружить с», и отобразить шаблон foreachwrap, который обернет выбор в каждом цикле в соответствующем формате.

Например, я хочу выбрать

someObject.getSomeList()

и сгенерировать это

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

}

Я пробовал что-то подобное, но, похоже, не работает:

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

1 Ответ

5 голосов
/ 09 марта 2011

Используйте QuickFix (Ctrl+1 на Win / Lin или Cmd+1 на Mac).

Вы можете получить желаемое поведение при следующем подходе:

  1. Напишите оператор, который возвращает повторяемую коллекцию, например,

    someObject.getSomeList()
    
  2. Нажмите Ctrl+1 (Cmd+1 на Mac) и выберите Assign statement to a new local variable (есть даже прямая комбинациядля этого действия (Cmd + 2 L на Mac), однако, если вы хотите его использовать, это, вероятно, зависит от того, сколько различных комбинаций вы хотите запомнить)

  3. Write noбольше чем

    fore
    

    и снова нажмите Ctrl+1 (Cmd+1), затем выберите Iterate over an array or iterable (обычно достаточно просто нажать Enter сразу после появления меню быстрого исправления), и вы получите что-то вродеthis:

    for (Content content : someList) {
    
    }
    

Теперь вы можете даже встроить использование локальной переменной, чтобы избавиться от нее снова (конечно, используя QuickFix;).QuickFix действительно мощный, я почти никогда не использовал шаблоны с момента публикации этой функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...