【问题标题】:Change Clang formatting for {} and access modifers更改 {} 和访问修饰符的 Clang 格式
【发布时间】:2021-12-20 13:56:39
【问题描述】:

在 VsCode 中,我想将 Clang 格式更改为:

class Test {
    public:
        Test() : tmp(0)
        {
            if (0 == 0) {
                std::cout << "hello" << std::endl;
            }
        }
        ~Test();

    protected:
    private:
        int tmp;
};

但目前我得到了:

class Test {
   public:
    Test() : tmp(0) {
        if (0 == 0) {
            std::cout << "hello" << std::endl;
        }
    }
    ~Test();

   protected:
   private:
    int tmp;
};

我的 CLang 设置:

{ BasedOnStyle: Google, IndentWidth: 4 }

【问题讨论】:

标签: c++ clang-format


【解决方案1】:

关于大括号断开样式

你想打破的大括号是在一个函数之后,所以你想把它添加到 Clang 设置中:

BreakBeforeBraces: Custom
BraceWrapping: 
  AfterFunction: true

您可以在Clang-Format Style Options 中找到其他BraceWrapping 选项。

关于修饰符缩进

目前,Clang 仅提供调整修饰符缩进的选项 - AccessModifierOffset。此选项将从您设置的IndentWidth 偏移或偏移。目前无法制定修饰符缩进标准。幸运的是,目前正在讨论和审核here

您可以设置它以减少烦人:

AccessModifierOffset: 0

如果您设置了以上所有选项,您会得到以下结果:

class Test {
    public:
    Test() : tmp(0)
    {
        if (0 == 0) {
            std::cout << "hello" << std::endl;
        }
    }
    ~Test();

    protected:
    private:
    int tmp;
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-22
    • 2012-10-22
    • 2010-11-13
    • 2013-10-19
    • 2017-02-19
    • 1970-01-01
    • 2014-06-27
    • 2015-09-16
    相关资源
    最近更新 更多