Как правильно отформатировать логические выражения в Eclipse - PullRequest
0 голосов
/ 29 января 2019

У меня почти есть средство форматирования кода в eclipse-cdt, как я хочу, но у меня проблема с логическими выражениями.

Это вывод средства форматирования кода:

if (ACM_SlewRight)
    mStopWallSlewRight = (leftSide && absAngleCur > 900) || (rightSide && absAngleCur < 900);

}

return mStopWallSlewLeft||
mStopWallSlewRight ||
mStopWallBoom1_Up ||
mStopWallBoom1_Down ||
mStopWallBoom2_Up ||
mStopWallBoom2_Down ||
mStopWallTeleOut;

Мне бы хотелось, чтобы это выглядело так:

if (ACM_SlewRight)
{
    mStopWallSlewRight = (leftSide && absAngleCur > 900) || 
                         (rightSide && absAngleCur < 900);

}

return mStopWallSlewLeft||
       mStopWallSlewRight ||
       mStopWallBoom1_Up ||
       mStopWallBoom1_Down ||
       mStopWallBoom2_Up ||
       mStopWallBoom2_Down ||
       mStopWallTeleOut;

Я не понимаю, почему первая часть не переносится, так как я настроил максимальную ширину линии на 80, а это 98. Возврат завернут самостоятельно.потому что обертка здесь тоже ничего не сделает.

Я также попробовал все варианты, которые мог найти (особенно в переносе строк -> выражений).Но я не могу найти решение, булевы выражения не поддерживаются?

1 Ответ

0 голосов
/ 30 января 2019

Непосредственный ответ на ваш вопрос заключается в том, что вы, вероятно, обнаружили ошибку во встроенном форматере CDT.Вы могли бы подать его здесь .

Более дальновидный ответ заключается в том, что встроенный форматировщик CDT едва видел какое-либо обслуживание за последние несколько лет, и поэтому любая такая ошибка вряд либыть исправленным (если вы не внесете исправление самостоятельно).С другой стороны, есть гораздо лучше поддерживаемые исходные форматы C ++ (например, clang-format ) и плагины для их интеграции в Eclipse (например, CppStyle ), с которыми вы, скорее всего,иметь гораздо лучший опыт.

...