如何防止 clang 格式缩进宏?



如何防止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的源代码。我已经将其修改为上述代码片段中的方式。

三个答案:

  1. 像这样的宏是糟糕的样式,最好将宏修复为不包含尾随逗号。然后,您不必担心clang-format(或任何其他格式化工具(误解代码。

  2. clang-format6.0.0 中,您可以使用以下内容实现所需的格式设置:

    BasedOnStyle: WebKit
    ContinuationIndentWidth: 0
    

    或者,如果您不想将格式设置为WebKit样式,这将使您大部分时间都在那里:

    AllowAllParametersOfDeclarationOnNextLine: false
    BinPackParameters: false
    ContinuationIndentWidth: 0
    

    关键是此处记录的ContinuationIndentWidth选项。但是,不幸的是,我认为你并不真的想要这个答案,因为设置ContinuationIndentWidth: 0可能会使其他代码变得丑陋和不可读。

  3. 如果您已经按照所需的方式格式化了代码,并且想要禁止clang-format影响特定的代码块,则可以用// clang-format on// clang-format off将其括起来。有关详细信息,请参阅文档。

相关内容

  • 没有找到相关文章

最新更新