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

后端 未结 3 871
北荒
北荒 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:28

    I managed to achieve the effect you want by changing both AccessModifierOffset with IndentWidth. Basically, the first is used as an offset of the second, so if you create your .clang-format like this you get what you want:

    AccessModifierOffset: -4
    IndentWidth:     8
    

    If AccessModifierOffset is 0, the public keyword would be at the same level of indentation as the members. However, changing IndentWidth will indent all code by 8 spaces, even those outside the class declaration. This is a sample code:

    class Foo {
        public:
            Foo();
            virtual ~Foo(); };
    
    int main(int argc, char *argv[]) {
            std::cout << "Hello world" << std::endl;
            return 0;
    }
    

提交回复
热议问题