Получение Eclipse для переноса скобок цикла for - PullRequest
2 голосов
/ 01 марта 2012

Я понимаю важность краткого, ясного кода и того, что по возможности следует избегать переноса строк кода. Однако для этого проекта требуется, чтобы ни одна строка не выходила за пределы столбца 80, и меня просят использовать подробное именование переменных. Следовательно, нужно обернуть что-то простое, например, круглые скобки for, и вот где я обнаружил, что Eclipse не работает.

Похоже, что Eclipse не может обернуть скобки цикла for или сохранить набор оберток. Например, мой оператор инициализации, выражение и update / counter находятся в отдельных строках, например:

for (initialization;
  expression;
  update/counter;)
{
  //code...
}

При нажатии Ctrl + Shift + f , Eclipse делает это:

for (initialization; expression; update/counter;)
{
  //code...
}

Есть ли способ заставить Eclipse сохранить это форматирование. Я создал пользовательский форматировщик Eclipse, но не могу найти настройки, которая обернет цикл for круглым. Я видел один пост, в котором предлагалось использовать //, но он не будет работать внутри скобки цикла for.

Ответы [ 3 ]

2 голосов
/ 01 марта 2012

Я не помню, чтобы опция сохраняла переводы строк после каждого из «инициализации», «выражения», «обновления».Остальное можно сделать, но не обтекание внутри круглой скобки цикла for.

Если вам действительно нужно сохранить обтекание, возможно, вы захотите вообще отключить форматирование в этих строках?Если вы перейдете в настройки форматера («Окно»> «Настройки»> «Java»> «Стиль кода»> «Формататор», затем нажмите «Редактировать ...»), то на вкладке «Выкл. / Вкл. Теги» (появилась в Eclipse 3.6 IIRC) можно включитьтеги для отключения средства форматирования в определенных частях кода.

При использовании тегов по умолчанию это будет выглядеть примерно так:

// @formatter:off
for (initialization;
  expression;
  update/counter)
// @formatter:on
{
  //code...
}
1 голос
/ 01 марта 2012

Вы также можете использовать этот способ:

for (/**/initialization;
/**/expression;
/**/update/counter;)
/**/{
  //code...
}
0 голосов
/ 04 августа 2014

Это также работает:

for (initialization; //
expression; //
update/counter) {
  // code...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...