Clang-format 语法在自己的行上获取初始化程序左大括号

Posted

技术标签:

【中文标题】Clang-format 语法在自己的行上获取初始化程序左大括号【英文标题】:Clang-format syntax to get initializer opening brace on its own line 【发布时间】:2020-06-24 05:02:54 【问题描述】:

我正在使用带有 .clang 格式文件的 Visual Studio Code 编写 C 代码。除了结构初始化之外,我已经按照我想要的方式进行了所有格式设置。我想要这种格式 -

static ifc_t _ifc = 

    .ps_read = NULL,
;

但是,我得到了这个 -

static ifc_t _ifc = 
    .ps_read = NULL,
;

我与左大括号有关的 clang 格式文件是这个 -

BreakBeforeBraces: Custom
BraceWrapping:
  AfterClass:      true
  AfterControlStatement: true
  AfterEnum:       true
  AfterExternBlock: true
  AfterFunction:   true
  AfterNamespace:  true
  AfterObjCDeclaration: true
  AfterStruct:     true
  AfterUnion:      true
  BeforeCatch:     true
  BeforeElse:      true
  IndentBraces:    false

是否有其他 clang-format 设置来控制结构初始化时左大括号的位置? 谢谢...

【问题讨论】:

【参考方案1】:

似乎有一个有效的 PR(遗憾的是,2021-05-27 停滞不前)通过添加缺少的 BraceWrapping / BeforeStructInitialization: https://reviews.llvm.org/D91949 来解决这个缺陷。

【讨论】:

以上是关于Clang-format 语法在自己的行上获取初始化程序左大括号的主要内容,如果未能解决你的问题,请参考以下文章

Certbot 在 httpd.conf 中不存在的行上给我语法错误

如何让每个 customLabel 在自己的行上?

将鼠标悬停在表格的行上并在该行下方打开一行以获取更多详细信息

枚举的 clang 格式样式选项

clang-format 展开空初始化程序

对象初始化器格式