每个文件(最好是每个部分)clang-format 样式覆盖

Per-file (ideally per-section) clang-format style override

我想用类似的东西标记文件的一部分:

// clang-format -style="{ SomeSetting: NewValue }"

...

// clang-format -style="{ SomeSetting: OldValue }"

这将覆盖根 .clang-format 文件中的全局设置。如果不可能,也可以通过将需要特定格式的部分隔离在其自己的文件中来解决单个文件的特定格式设置问题。我有一个 git 预提交挂钩,可以对暂存文件进行格式化,还有 IDE 插件 运行 clang-format 自己,但我不想必须在这些地方标记特定文件和特定设置。

我现在能做的最好的办法是用自定义设置格式化文件,把// clang-format off// clang-format on保护在该部分周围并恢复设置,这在很长一段时间内是不可持续的学期。有更好的解决方案吗?

你想要的目前 (clang 13) 不可能,但肯定是添加到 clang-format 的一个很好的功能。

Current documentation on Clang-Format Style Options 没有说明在代码中输入样式选项。正如您所说,我们最接近的是使用 // clang-format off// clang-format on 提示。