How to auto indent a C++ class with 4 spaces using clang-format?

后端 未结 3 870
北荒
北荒 2021-02-01 03:13

I got the next .clang-format file in my project\'s root directory:

---
AlignTrailingComments: true
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatements         


        
3条回答
  •  暗喜
    暗喜 (楼主)
    2021-02-01 03:47

    As near as I can tell, clang-format offers no option for indenting function contents differently from non-access-modifier class contents. That is, consider the following code:

    class A {
      public:
        void foo() {}
    }
    
    void bar() {
        int a;
    }
    

    In this code, the line "void foo() {}" will always be indented the same amount as "int a;" by clang-format.

    The closest thing to the style you seem to want that is available would come from not indenting the access modifiers, e.g.:

    class A {
    public:
        void foo() {}
    }
    
    void bar() {
        int a;
    }
    

    This is done, for example, by the WebKit, Mozilla, and LLVM styles. It's achieved by setting:

    IndentWidth: 4
    AccessModifierOffset: -4
    

提交回复
热议问题