首页 > 解决方案 > 如何在eclipse中正确格式化布尔表达式

问题描述

我几乎像我想要的那样在 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。返回由我自己包装,因为包装器在这里也不会做任何事情。

我还尝试了我能找到的所有选项(尤其是在换行 -> 表达式中)。但是我找不到解决方案,不支持布尔表达式吗?

标签: eclipseeclipse-cdtcode-formatting

解决方案


您的问题的直接答案是您可能在 CDT 的内置格式化程序中发现了一个错误。你可以在这里归档

更具前瞻性的答案是 CDT 的内置格式化程序在过去几年中几乎没有进行过任何维护,因此任何此类错误都不太可能被修复(除非您自己贡献修复)。另一方面,有很多维护得更好的 C++ 源代码格式化程序(如clang-format)和将它们集成到 Eclipse 中的插件(如CppStyle),您可能会获得更好的体验。


推荐阅读