Visual Studio:宏调用后自动缩进而不关闭分号不起作用

Flo*_*ian 5 c++ macros editor autoformatting visual-studio-2015

我已在 Visual Studio 2015 中为旧版 C++ 项目激活自动代码格式化。

问题在于,特定宏调用之后的代码行(由于位于宏内部而不以分号结束)始终是缩进的。我正在 Visual Studio 2015 中寻找一个设置来防止这种情况,而无需安装另一个扩展,无需更改宏定义本身或要求每个人在调用中添加一个额外的分号(这将修复它)。

以下是代码和产生的问题的最小示例:

#include <iostream>

#ifdef _DEBUG
# define MY_TRACE(X) do { std::cout << X << std::endl; } while (0);
#else
# define MY_TRACE(X) {}
#endif

int main()
{
    MY_TRACE( "Hello World!" )
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以我有以下设置,它会自动缩进,例如 on<Enter>或 with }

C++ 自动套用格式设置

以及以下缩进设置:

C++ 缩进设置

我已经尝试了那里和其他地方的所有可能和不可能的设置组合(包括例如“制表符/缩进/智能”的转动)。每次 Visual Studio C++ 编辑器都会继续缩进宏后面的行。

我在 SO 或互联网上也找不到任何东西。我得到的最接近的,但没有答案或不同编辑器/语言的位置: