如何配置.clang-format实现#if与#endif间代码自动缩进?
clang-format配置实现预处理指令及包裹代码的缩进
要实现你想要的效果,只需要在.clang-format里配置两个关键选项:
IndentWidth: 设置基础缩进的空格数,比如你例子里用的是2,就设为2IndentPPDirectives: AfterHash:让预处理指令(#ifdef/#else/#endif)对齐到当前代码块的缩进层级,同时让指令包裹的代码自动再缩进一层
完整的配置片段示例:
# 基础缩进宽度,可根据项目需求调整 IndentWidth: 2 # 让预处理指令跟随所在代码块的缩进,且包裹代码自动缩进 IndentPPDirectives: AfterHash
把这个配置应用到你给出的代码上,就能得到目标格式化结果:
格式化前代码:
void foo() { #ifdef FOO bar1(); #else bar2(); #endif }
格式化后代码:
void foo() { #ifdef FOO bar1(); #else bar2(); #endif }
注意确保没有其他缩进相关配置(比如DisableFormat)干扰效果,只要这两个选项设置正确,就能实现预处理指令缩进+包裹代码缩进的需求。
内容的提问来源于stack exchange,提问作者Grzzlwmpf
相关产品推荐
相关产品推荐

