Tyl*_*erg 6 curly-braces braces clang-format
IE浏览器,这个:
if (x > 5)
return test;
Run Code Online (Sandbox Code Playgroud)
总是会变成:
if (x > 5)
{
return test;
}
Run Code Online (Sandbox Code Playgroud)
我不是在谈论大括号样式(Allman、GNU、Whiteman 等),我只是说完全有大括号。
有一些东西可以防止/启用单行控制语句,例如:
if (x > 5) return test;
这是AllowShortBlocksOnASingleLine,但这不是我在这里寻找的东西。
如果它适用于 clang 7 那是理想的,但如果不是让我知道。
我同意 dovedevic 的观点,clang-format目前还不能做到这一点。另一个需要考虑的替代方案是clang-tidy。您可以使用以下方法在控制语句周围强制使用大括号:
clang-tidy -checks='-*,readability-braces-around-statements' -fix-errors myfile.cpp
Run Code Online (Sandbox Code Playgroud)
解释:
-*所有检查readability-braces-around-statements启用一项检查-fix-errors告诉clang-tidy修复它发现的任何问题,即使发现编译错误请参阅文档以获取更多信息。
您想要坚持使用是可以理解的clang-format,但是我最近的帖子让我陷入了与您相似的兔子洞。看起来它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
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令对源文件运行 Uncrustify:
$ uncrustify -c /path/to/.uncrustify --no-backup example.c
Run Code Online (Sandbox Code Playgroud)
如果您需要更多格式选项,他们的在线配置工具有一些示例和大量可配置的描述。
你说:
我不是在寻找要安装的辅助工具 - 它必须与未更改的 clang-format 安装一起使用。[...]
恐怕从clang-format6.0(我研究和测试的)和 7.0(我研究的)开始,这似乎是不可能的。
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |