c++ - 如何仅应用一种 clang 格式的操作?

标签 c++ code-formatting clang-format

我想使用 clang-format 来对齐我的评论,但没有别的。

选项是:AlignTrailingComments (bool)

但是当我运行以下命令时:

clang-format-3.6 -i -style='{AlignTrailingComments: true}' <file>

它执行我认为在未指定时具有默认值的各种其他格式选项。

如何在代码库中只执行一个 clang 格式化规则?

拥有所有这些默认值使得很难看到单个格式化选项对代码的全部影响。我必须解析所有这些其他更改的差异,并确定它是否是我指定的选项实际上做了它。


我注意到有一个 DisableFormat 选项,但无论我如何使用它,它都会阻止任何格式化发生。

clang-format-3.6 -i -style='{AlignTrailingComments: true, DisableFormat: true}'

clang-format-3.6 -i -style='{DisableFormat: true, AlignTrailingComments: true}'

两者都会导致 clang-format 无法在任何地方生成任何代码。

最佳答案

我认为 clang 格式根本不是为此而设计的。规则不是增量应用的东西,而是围绕程序构建,解析整个程序并忘记(大部分)旧的空白,并根据您选择的规则生成新的空白。

您可以在此处查看架构的一些概述:http://www.llvm.org/devmtg/2013-04/jasper-slides.pdf

首先它运行 clang 词法分析器和解析器,然后将标记组划分为“展开的行”,即“如果没有列限制,我们希望将标记放在一行中”。然后布局器根据各种约束和优化各种惩罚来确定每个展开行的格式。

所以,我不认为“一个 clang 格式的 Action ”实际上是一件事,设计在我看来非常单一。

关于c++ - 如何仅应用一种 clang 格式的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30763869/

相关文章:

c# - 获取 Resharper 格式以匹配 Visual Studio 格式

intellij Idea中的Java代码格式化(链式方法调用)

c++ - 如果使用 clang-format,则删除单语句后的换行符

c++ - C++11 正则表达式是否适用于 UTF-8 字符串?

c++ - C++ 中的直接赋值运算符

c++ - C++中类数组成员的初始化

eclipse - 强制 Eclipse 源代码格式化程序在 80 个字符处换行的替代方法或方法?

c++ - 如何接受字符串 'end' 以使用 C++ 在 Vector 中完成程序?

c++ - 函数参数延续

ios - 如何为 iOS 编码配置 Allman 风格的 Clang 格式?