如何防止clang-format
缩进下面的宏及其赋值?
定义:
#define DESKTOPCHANGE(K,N)
{MOD, K, changeworkspace, {.i=N}},
{MOD | SHIFT, K, sendtoworkspace, {.i=N}},
成为:
#define DESKTOPCHANGE(K, N)
{MOD, K, changeworkspace, {.i = N}},
{MOD | SHIFT, K, sendtoworkspace, {.i = N}}
用法:
static key keys[] = {
DESKTOPCHANGE(XK_1, 0)
DESKTOPCHANGE(XK_2, 1)
DESKTOPCHANGE(XK_3, 2)
DESKTOPCHANGE(XK_4, 3)
DESKTOPCHANGE(XK_5, 4)};
成为:
static key keys[] = {DESKTOPCHANGE(XK_1, 0) DESKTOPCHANGE(XK_2, 1)
DESKTOPCHANGE(XK_3, 2) DESKTOPCHANGE(XK_4, 3)
DESKTOPCHANGE(XK_5, 4)}
我尝试了一些选项,但无法找出正确的选项。有没有一种通用方法可以关闭所有对齐方式,并仅在需要时打开它们?
这是来自Github的源代码。我已经将其修改为上述代码片段中的方式。
三个答案:
-
像这样的宏是糟糕的样式,最好将宏修复为不包含尾随逗号。然后,您不必担心
clang-format
(或任何其他格式化工具(误解代码。 -
在
clang-format
6.0.0 中,您可以使用以下内容实现所需的格式设置:BasedOnStyle: WebKit ContinuationIndentWidth: 0
或者,如果您不想将格式设置为
WebKit
样式,这将使您大部分时间都在那里:AllowAllParametersOfDeclarationOnNextLine: false BinPackParameters: false ContinuationIndentWidth: 0
关键是此处记录的
ContinuationIndentWidth
选项。但是,不幸的是,我认为你并不真的想要这个答案,因为设置ContinuationIndentWidth: 0
可能会使其他代码变得丑陋和不可读。 -
如果您已经按照所需的方式格式化了代码,并且想要禁止
clang-format
影响特定的代码块,则可以用// clang-format on
和// clang-format off
将其括起来。有关详细信息,请参阅文档。