首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是clang-格式相当于rustfmt的indent_style=Block?

什么是clang-格式相当于rustfmt的indent_style=Block?
EN

Stack Overflow用户
提问于 2020-05-15 12:02:53
回答 3查看 691关注 0票数 0

如果clang是rustfmt,那么它将有一个包罗万象的风格配置选项,它引用缩进样式中的基本区别:

Visual (默认为clang-):

代码语言:javascript
复制
ReturnType<std::vector<int>> ClassName::functionName(int a,
                                                     bool b,
                                                     float c,
                                                     double d,
                                                     long double complex e);

static const char* names[] = {"a",
                              "b",
                              "c"};

(默认为rustfmt):

代码语言:javascript
复制
ReturnType<std::vector<int>> ClassName::functionName(
    int a,
    bool b,
    float c,
    double d,
    long double complex e);

static const char* names[] = {
    "a",
    "b",
    "c",
};

如何将clang格式配置为在所有语法范围中进行块缩进?

或者任何C++格式化程序都支持块缩进吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-15 21:07:41

  1. 可以配置什么: (涵盖函数、ctor init列表和枚举,但不包括列表) AlignAfterOpenBracket: AlwaysBreak BreakConstructorInitializers: BeforeComma BinPackArguments:'false‘BinPackParameters:'false’ BinPack*选项对于块缩进并不严格,但是要像问题所显示的那样,将一项或全部项放在一行中。
  2. 对于列表,clang-格式使用块缩进,其中使用后缀逗号,在使用infix逗号时使用可视缩进: 静态const * postfixCommaDelimited[] = {"a“、"b”、"c“、};静态const * infixCommaDelimited[] ={ "a”、"b“、"c"}; 如果所有的前缀逗号分隔列表都是一行,我认为这是有意义的,但是我希望clang-格式能够对多行列表做一些事情。Rustfmt将它们重写为后缀逗号,我也希望在C++中这样做。
票数 0
EN

Stack Overflow用户

发布于 2020-05-15 12:41:19

默认的样式设置是Microsoft (它对齐打开的paren)。使用BasedOnStyle设置为Google以获取块缩进:

代码语言:javascript
复制
BasedOnStyle: Google
票数 0
EN

Stack Overflow用户

发布于 2020-05-15 17:04:22

Uncrustify可以做到这一点,至少只要你能为C++提供的每个可想象的语法范围找到相应的选项--我看不出任何整体的选择。

首先:

代码语言:javascript
复制
nl_func_def_start_multi_line = true
nl_func_decl_start_multi_line = true
nl_func_call_start_multi_line = true

nl_after_brace_open=true
nl_type_brace_init_lst_open = true
nl_enum_own_lines = add

nl_constr_init_args = add
pos_constr_colon = lead_break
pos_constr_comma = lead_break
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61818747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档