如何告诉clang格式缩进可见性修饰符

How can I tell clang-format to indent visibility modifiers?

本文关键字:可见性 缩进 何告诉 clang 格式      更新时间:2023-10-16

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

来自Clang Format Style Options文档:

AccessModifierOffset(int)访问修饰符的额外缩进或outdent,例如public:。

因此,在.clang-format中添加适当的条目。例如,

AccessModifierOffset: 2

如果您想赋予访问修饰符自己的缩进级别,可以使用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: true,忽略AccessModifierOffset

我相信所有理性的程序员都会同意,这些选项中只有一个是可以接受的。尽管他们可能不会就它是哪一个达成一致。