c++ 在函数和初始化后的换行符上设置大括号格式

mum43rcc  于 2023-07-01  发布在  其他
关注(0)|答案(1)|浏览(134)

我使用的是Clang格式,配置已经做了一段时间了。
我注意到变量初始化的样式将大括号与参数放在同一行,但我希望它在新行结束(如果参数也放在新行)。它看起来是这样的:

std::string const long_init{
    "Smartasdasdsadasdasdasdasdasdasdasdasdasdasdasdasdasdasglove"};
    
some_class some_class_var{
    long_arg_name_1, long_arg_name_2, long_arg_name_3, long_arg_name_4};

我希望它看起来是这样的

std::string const long_init{
    "Smartasdasdsadasdasdasdasdasdasdasdasdasdasdasdasdasdasglove"
};
    
some_class some_class_var{
    long_arg_name_1, long_arg_name_2, long_arg_name_3, long_arg_name_4
};

我试着查看documentation,但似乎找不到要调优的正确参数。
有谁知道是什么设置控制的?

svmlkihl

svmlkihl1#

BreakBeforeBraces(BraceBreakingStyle)clang-format 3.7 ¶要使用的大括号打断样式。
可能的值:BS_Attach(在配置中:附加)始终将大括号附加到周围的上下文。

namespace N {
        enum E {
          E1,
          E2,
        };

        class C {
        public:
          C();
        };

        bool baz(int i) {
          try {
            do {
              switch (i) {
              case 1: {
                foobar();
                break;
              }
              default: {
                break;
              }
              }
            } while (--i);
            return true;
          } catch (...) {
            handleError();
            return false;
          }
        }

        void foo(bool b) {
          if (b) {
            baz(2);
          } else {
            baz(5);
          }
        }

        void bar() { foo(true); }
        } // namespace N

这是从文档,希望它有帮助:)

相关问题