Eclipse CDT宏自动格式化
Eclipse CDT macro automatic formatting
我正在使用 TrueSTUDIO 9.1.0,并且还在新的 Eclipse IDE 中针对 C/C++ 开发人员版本进行了测试:2018-09 (4.9.0)。
自动代码格式化程序似乎在新行的宏调用之后放置分号。
重现步骤:
下载 Eclipse IDE C/C++ 开发者版本:2018-09 (4.9.0) Windows 32 位。
创建新的空 C 项目
使用代码创建 .c 文件:
#define testmacro() do {printf("test");} while (0)
void main(void) {
testmacro();
}
按Ctrl+Shift+F格式化整个文件
得到:
#define testmacro() 做 {printf("test");} while (0)<br>
无效主要(无效){
测试宏()
;
}
在这个问题 (link) 中讨论并驳回了它,因为它已修复。
我是做错了什么还是错误又回来了?
我认为您没有做错任何事情,CDT 内置格式化程序只是有问题且无人维护。关于它的行为有几十个未解决的错误。在这种情况下,它看起来像 bug 475349.
我建议使用一个插件,它包装了一个现代的、维护好的格式化程序,比如 clang-format
,比如 CppStyle。
我正在使用 TrueSTUDIO 9.1.0,并且还在新的 Eclipse IDE 中针对 C/C++ 开发人员版本进行了测试:2018-09 (4.9.0)。
自动代码格式化程序似乎在新行的宏调用之后放置分号。
重现步骤:
下载 Eclipse IDE C/C++ 开发者版本:2018-09 (4.9.0) Windows 32 位。
创建新的空 C 项目
使用代码创建 .c 文件:
#define testmacro() do {printf("test");} while (0)
void main(void) { testmacro(); }
按Ctrl+Shift+F格式化整个文件
得到:
#define testmacro() 做 {printf("test");} while (0)<br> 无效主要(无效){ 测试宏() ; }
在这个问题 (link) 中讨论并驳回了它,因为它已修复。
我是做错了什么还是错误又回来了?
我认为您没有做错任何事情,CDT 内置格式化程序只是有问题且无人维护。关于它的行为有几十个未解决的错误。在这种情况下,它看起来像 bug 475349.
我建议使用一个插件,它包装了一个现代的、维护好的格式化程序,比如 clang-format
,比如 CppStyle。