clang格式是否可以在所有控制语句主体上强制使用括号?

问题描述 投票:2回答:1

IE,这个:

if (x > 5)
  return test;

将永远成为:

if (x > 5)
{
  return test;
}

我不是在谈论牙套样式(Allman,GNU,Whiteman等),我只是说要在那里牙套。

有些东西可以防止/启用单行控制语句,例如:

if (x > 5) return test;

这是AllowShortBlocksOnASingleLine,但这不是我在这里要的。

如果它适用于clang 7,那是理想的选择,但如果没有,请告诉我。

curly-braces clang-format braces
1个回答
0
投票

[您可以坚持使用clang-format是可以理解的,但是my recent post使我陷入了一个类似的兔子洞。看来clang-format大多被用作纯空白格式器。要,我建议使用Uncrustify。构建过程非常简单(有关详细信息,请参见github页),您的配置如下:$ cat .uncrustify # Uncrustify-0.70.1 nl_if_brace = remove nl_brace_else = force nl_elseif_brace = remove nl_else_brace = remove nl_else_if = remove nl_before_if_closing_paren = remove nl_for_brace = remove nl_while_brace = remove nl_do_brace = remove nl_brace_while = remove nl_multi_line_sparen_open = remove nl_multi_line_sparen_close = remove nl_after_vbrace_close = true mod_full_brace_do = force mod_full_brace_for = force mod_full_brace_function = force mod_full_brace_if = force mod_full_brace_while = force

您可以使用以下命令对此源文件运行Uncrustify:

$ uncrustify -c /path/to/.uncrustify --no-backup example.c

如果您需要更多的格式设置选项,它们的online config tool包含一些示例和说明,其中包含大量可配置项。

您声明:

我不是要安装辅助工具-它必须与未更改的clang格式安装一起使用。 [...]

[恐怕clang-format 6.0(我研究和测试过的东西)和7.0(我研究过的东西)似乎不可能。

© www.soinside.com 2019 - 2024. All rights reserved.