我想使用 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不能在任何地方制作任何代码。
答案 0 :(得分:6)
我认为clang格式根本就不是为此而设计的。规则不是它逐步应用的东西,而是构建程序,解析整个程序并忘记(大部分)旧的空白,并根据您选择的规则生成新的空格。
您可以在此处查看该体系结构的一些概述:http://www.llvm.org/devmtg/2013-04/jasper-slides.pdf
首先它运行clang lexer和parser,然后它将标记组分成&#34;未包装的行&#34;如果没有列限制,那么我们希望将这些令牌放在一行上#34;然后,layouter根据各种约束确定每个展开行的格式,并针对各种惩罚进行优化。
所以,我不会想到&#34;一个铿锵的格式动作&#34;实际上是一件事,设计对我来说看起来非常单一。
答案 1 :(得分:1)
clang-format
没有执行此操作的机制。
我使用的姑息方法是通过两种不同的方式配置要更改的内容,同时使用两种配置运行该工具并进行比较,以告诉我影响到所需内容的更改,但总的来说,这至少需要一些手动工作。 / p>
clang-format
是一个好主意,但实现不佳。它有许多缺陷,其中有些是无法选择指示更改原因的,XML输出格式不能由任何其他流行的工具使用。