如何使用clang-format控制数组初始化项的缩进

How do I control indentation of array initializers with clang-format?

本文关键字:缩进 初始化 数组 何使用 clang-format 控制      更新时间:2023-10-16

有时clang-format会这样做:

SomeType VariableName[] = {Thing1,
                           Thing2,
                           Thing3}

,有时clang-format会这样做:

SomeType VariableName[] = {
   Thing1,
   Thing2,
   Thing3}

和一个字符的改变可以使它在

之间切换。

有没有办法控制它做什么?

我是从最新的git源代码构建的,所以最新的选项可用

根据这个答案,clang-format在某些步骤中将尽可能多的内容放在单行上,并将ColumnLimit应用于其上。

这就解释了行为之间的切换。

防止这种情况的一种方法是将ColumnLimit设置为0,代价是删除所有自动包装。我认为这是值得的,我相信其他人不同意。

clang-format为用户在格式化代码时提供了一种指定单个属性的方式,例如是否允许tab, tabwidth是什么。

您可以使用下面的方法告诉clang-format使用自定义属性。

  $clang-format -style="{BaseonStype: llvm, IndentWidth: 8}"
  $clang-format -style=HAND_WRITTEN_FORMAT_FILENAME
  $clang-format -style=llvm  #builtin styles.

您可以从171行到266行了解您可以在文件中自定义哪些属性。