2015-05-07 3 views
13

Я хотел бы использовать перенос строк после оператора для строк и переноса строк перед оператором для других элементов (числа, пользовательские объекты, ..) в Eclipse for Java ,Как использовать различную перенос строк для строк и других элементов в Eclipse для Java

При добавлении номеров с разными знаками операторы важнее меня, чем числа. Было бы неплохо иметь операторы на фронте лучше прочитать заявление:

А.

int foo = baaa 
      + veryveryveryloooooongexpression 
      - shortexpression 
      + anotherexpression; 

против

B.

int foo = baaa + 
      veryveryveryloooooongexpression - 
      shortexpression + 
      anotherexpression; 

На с другой стороны, при добавлении строк, оператор просто используется для продолжения строки, а элементы String - больше важно для меня. Оператор в конце строки дает подсказку, что что-то происходит в следующей строке. Поэтому я хотел бы использовать переносы строк после оператора для струнных:

B.

String message = "Would you like to use line wrapping at " + position + 
       " ? If you want to keep that behavior press Enter." 

против

А.

String message = "Would you like to use line wrapping at " + position 
        +" ? If you want to keep that behavior press Enter." 

Статьи по теме:

(В некоторых случаях это может быть, конечно, лучше, чтобы улучшить код и использовать одну строку, чтобы использовать string.Format (...) или используйте String Builder. Это не вопрос здесь.)

Как применить различные параметры переноса строки A. (перед оператором) и B. (после оператора) для двух разных случаев (первый элемент - это String vs. first item - это что-то еще) в Eclipse? Есть ли какие-то настройки по умолчанию, которые я не видел? Есть ли плагин Eclipse, который может это сделать?

(еще несколько комментариев:

  • Edit: После комментария действительна только для Eclipse, 4.4.2 (Луна) и уже зафиксировано в Затмении 4.5 (Марс):

Я не получил обертывание после того, как оператор (Б.) корректно работал, когда обертывал аргумент String внутри вызова функции, даже если бы я хотел применить его для обоих случаев. Я включил опцию «Wrap before operator» для Binary выражения d отключил общий параметр «Никогда не присоединяйте уже завернутые строки».Тем не менее оператор + в следующем примере появляется в следующей строке. Я подал отчет об ошибке под номером https://bugs.eclipse.org/bugs/show_bug.cgi?id=466919.

statusBuilder.append("This set is not yet present in the database!\n" 
        + "You can save it by hitting the 'Save' button below.\n"); 

  • Если я ударил Вернись в середине строки, затмение правильно оборачивает линию до или после оператора, в зависимости от настройки «Wrap перед тем оператором» для бинарных выражений.

  • Модуль checkstyle Whitespace => Operator Wrap не поддерживает дополнительные настройки для конкатенации строк.

)

+0

Поскольку для этого не существует плагина, я написал запрос функции: https://bugs.eclipse.org/bugs/show_bug.cgi?id=466920 – Stefan

+0

TBH, я делаю все мелкозернистые форматирование кода вручную , При использовании инструментов это компромисс между получением неожиданных результатов и тратой времени на настройку инструмента. – Nayuki

+0

Я согласен, если вы работаете в одиночку. Я участвую в поэтапном процессе внедрения в Eclipse более форматирующих и стильных ограничений, чтобы упростить совместное использование и управление нашей базой кода. Это также помогает очистить исторический код. Мы подготовили переносной пакет Eclipse и поставили его под контроль версий. Мы начали с соглашения об общих настройках предупреждения Eclipse. Затем мы представили findbugs, и теперь я готовлю настройки checkstyle, которые будут вызывать следующие предупреждения 2000 года. :) Я согласен с тем, что для настройки этих плагинов очень много работы, и мы надеемся, что в долгосрочной перспективе это окупится. – Stefan

ответ

0

Я только что нашел еще один вариант: использовать "+ //" в конце каждой строки:

String message = "Would you like to use line wrapping at " + position + // 
      " ? If you want to keep that behavior press Enter." 
3

Используйте вкл/выкл теги отключить форматирования кода в Eclipse для конкретных блоков кода. Это заставляет вас форматировать код самостоятельно, но он по крайней мере дает вам полный контроль над тем, как выглядит код.

//@formatter:off 
String message = "Would you like to use line wrapping at " + position + 
       " ? If you want to keep that behavior press Enter." 
//@formatter:on 

Функции включения/выключения должны быть включены «ВКЛ». В настройках Eclipse: Java> Code Style> Formatter. Нажмите на кнопку "Редактировать", "Off/On Метки", отметьте "Включить Off/On тегов"