В настоящее время IntelliJ (в частности, Android Studio) прерывает длинные условия следующим образом:
if (valueWithALongNameA || valueWithALongNameB && valueWithALongNameC) {
}
// becomes
if (valueWithALongNameA ||
valueWithALongNameB &&
valueWithALongNameC) {
}
Но наши соглашения о кодировании заставляют нас форматировать их так:
if (valueWithALongNameA || valueWithALongNameB && valueWithALongNameC) {
}
// becomes
if (valueWithALongNameA
|| valueWithALongNameB
&& valueWithALongNameC) {
}
Обратите внимание, что ||
и &&
после новой строки в нашем стиле. Есть ли способ заставить IntelliJ делать это с помощью автоформатов?
Основная проблема заключается в том, что я использую автоформат для обеспечения того, чтобы мой код был отформатирован в соответствии с нашими стандартами, но это приводит к ненужному изменению правильно отформатированных условных выражений, что приводит к изменению различий.
Я не мог найти ничего, что было бы актуально в настройках:
Я попытался вывести все настройки на экран одновременно, но мне пришлось отключить некоторые из них, поэтому я исключил опции "Сохранить при переформатировании" и «Убедитесь, что правое поле не превышено». Все они проверяются, кроме "Разрывы строк", "Оператор управления в одной строке" и "Несколько выражений в одной строке". Заголовок отрезанной секции - "Размещение скобок".