我在项目的根目录中获得了下一个 .clang-format 文件:
---
AlignTrailingComments: true
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: true
AllowShortLoopsOnASingleLine: true
BreakBeforeBinaryOperators: false
IndentWidth: 4
SortIncludes: false
NamespaceIndentation: All
...
当我在我的 c++ 头文件上运行 clang-format 时出现问题,这些类会像这样自动缩进:
如您所见,标签 public 和 private 仅缩进 2 个空格。但我想要实现的是以下输出(缩进是手动调整的):
这样,代码折叠就变成了一件非常愉快的事情。
我怎样才能调整我的 .clang 格式来达到这个效果?如果不可能,您将如何修补 clang 格式的源代码以实现这种所需的行为?
编辑:
我尝试使用不成功的 AccessModifierOffset,我使用了值 {-2,0,2,4} 下面的示例:
如您所见,公共块内的语句不会正确缩进。
编辑2:
我已经尝试过@Henrique Jung 解决方案,这绝对不是我想要的,如果使用这种组合,结果会是这样的:
如您所见,函数内部的内容缩进了 8 个空格而不是 4 个空格,这不好。
编辑3:
几个月前我给了一个赏金,所以我要再试一次,因为这个肯定很有趣。如果我对 clang 格式的源代码有足够的了解,我会试一试,不幸的是我没有。
原文由 BPL 发布,翻译遵循 CC BY-SA 4.0 许可协议
据我所知,clang-format 没有提供与非访问修饰符类内容不同的缩进函数内容的选项。也就是说,考虑以下代码:
在这段代码中,“void foo() {}”行的缩进量总是与“int a;”相同。通过 clang 格式。
与您似乎想要的可用样式最接近的东西来自不缩进访问修饰符,例如:
例如,这是由 WebKit、Mozilla 和 LLVM 样式完成的。它是通过设置来实现的: