如何告诉clang-format缩进可见性修饰符?

时间:2015-03-22 19:38:59

标签: c++ c++11 clang clang-format

我希望我的可见性修饰符(publicprotectedprivate)由clang格式缩进,后者当前将它们保留在与类声明相同的级别。我在转储默认格式选项时查找了indentvisibility,但无法找到任何内容。

2 个答案:

答案 0 :(得分:9)

来自Clang-Format Style Options documentation

  

AccessModifierOffset(int)   额外的缩进或访问修饰符,例如公共:

因此,请在.clang-format添加相应的条目。例如,

AccessModifierOffset: 2

答案 1 :(得分:1)

如果您想为访问修饰符提供自己的缩进级别,您可以使用 IndentAccessModifiers: true。这将为您提供如下所示的代码。

class my_class {
  public:
    my_class() = default;
};

使用 IndentAccessModifiers: false,默认情况下您将获得完全不缩进的访问修饰符,并且类成员将仅在周围范围之外缩进一级。

class my_class {
public:
  my_class() = default;
};

然后您可以使用 AccessModifierOffset 仅调整访问修饰符的对齐方式,而不会影响类成员的对齐方式。使用 IndentAccessModifiers: falseAccessModifierOffset: 1,你会得到这个。

class my_class {
 public:
  my_class() = default;
};

对于 IndentAccessModifiers: trueAccessModifierOffset 被忽略。

我相信所有理性的程序员都会同意这些选项中只有一个是可以远程接受的。虽然他们可能不会同意是哪一个。

相关问题