Eclipse CDT 格式化程序错误地将列与宏对齐?

Eclipse CDT formatter lines up columns with macros incorrectly?

背景

使用 STM32CubeMxIDE 1.8(Eclipse® 2021-03 和 CDTTM 版本 10.2.0)。我已经调整为自定义格式化程序 Window >> Preferences >> C/C++ >> CodeStyle >> Formatter >> Edit,并根据 Google、GNU 和个人喜好创建了我自己的。对于大型函数,我想要这样的东西:

foo(0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000);

问题

鉴于我的代码格式不正确:

#define mainEXAMPLE_32BIT  0x00000000

__myExampleFunctionFoo (  mainEXAMPLE_32BIT, mainEXAMPLE_32BIT,mainEXAMPLE_32BIT,    mainEXAMPLE_32BIT,mainEXAMPLE_32BIT);

如果我通过保存或按 CTRL + SHIFT + F 格式化并格式化整个页面变成:

__myExampleFunctionFoo(mainEXAMPLE_32BIT, mainEXAMPLE_32BIT,
                       mainEXAMPLE_32BIT, mainEXAMPLE_32BIT,
                       mainEXAMPLE_32BIT);

太棒了!这就是我想要的。

但它只有效一次。当我保存文件或再次按 CTRL + SHIFT + F 时,我现在有:

__myExampleFunctionFoo(mainEXAMPLE_32BIT, mainEXAMPLE_32BIT,
mainEXAMPLE_32BIT,
                       mainEXAMPLE_32BIT,
                       mainEXAMPLE_32BIT);

第二个参数向前移动到与其函数相同的缩进。这似乎只发生在 defines/macros.

我已经尝试过我自己的、GNU 和其他 CDT 格式化程序选项。我怀疑这不是错误,而是宏扩展或一般某些宏选项的问题。

有什么建议吗?我怀疑我会得到的最佳回应是安装 Clang-Format。

我在这方面一无所获,无法查看内置格式化程序在做什么以及为什么,最终切换到 clang-format。

Eclipse 的插件名为 CppStyle。