用clang格式缩进预处理指令

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我正在做一个c++项目,在这个项目中,我使用了大量的#pragma omp...。我使用美妙的clang格式来保持整洁,但是它总是删除所有预处理指令的缩进。有办法改变这种行为吗?或者还有其他更值得推荐的格式化工具?或者我应该完全避免使用这些工具吗?

提问于
用户回答回答于

你可能想自己修补它,并提出一个拉请求。

没那么难,我也有一次提出了一个类似的平淡无奇的请求。clang格式的代码非常整洁。clang-格式已经以您想要的方式处理代码注释,将它们与周围的代码对齐(至少它有一个选项来启用此功能),因此使用相同的方法来处理某些PP指令的补丁应该是简单明了的。

或者,您可以自己编写修补程序,并使用额外的选项从源代码编译clang,以便在项目中使用。在我决定把补丁发给他们之前我也这么做了。

我只花了几个小时就想出了怎么做,他们的代码是比许多其他开源项目的代码更干净。

用户回答回答于

# Replace "#pragma omp" by "//#pragma omp"
sed -i 's/#pragma omp/\/\/#pragma omp/g' ./main.c
# Do format
clang-format ./main.c
# Replace "// *#pragma omp" by "#pragma omp"
sed -i 's/\/\/ *#pragma omp/#pragma omp/g' ./main.c

扫码关注云+社区