我有以下代码:
return first_long_function_name(argument) ||
second_long_function_name(argument) || third_long_function_name(argument);
我希望它的行为像
BinPackParameters=false
,如果它不能放在一行中,则应该将每个子句放在单独的行中。有什么办法可以做到这一点吗?
return first_long_function_name(argument) ||
second_long_function_name(argument) ||
third_long_function_name(argument);
我的
.clang-format
文件如下:
# See https://clang.llvm.org/docs/ClangFormatStyleOptions.html for all options
Language: Cpp
# Spaces
ColumnLimit: 120
IndentWidth: 4
AccessModifierOffset: -4
IndentAccessModifiers: false
NamespaceIndentation: None
IndentCaseLabels: true
AlwaysBreakTemplateDeclarations: Yes
SpaceAfterTemplateKeyword: false
# Function calls
AlignAfterOpenBracket: Align
BinPackParameters: false
BinPackArguments: false
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
# Curly Braces
BreakBeforeBraces: Custom
BraceWrapping:
AfterFunction: true
AfterControlStatement: Never
InsertBraces: true
# Variables
PointerAlignment: Right
# Short lines
AllowShortEnumsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortBlocksOnASingleLine: Empty
# Comments
ReflowComments: false
# Includes
SortIncludes: Never
ForEachMacros: ['LOOP', 'LOOP_FROM', 'LOOP_TYPE', 'LOOP_FROM_TYPE']
PenaltyReturnTypeOnItsOwnLine: 1000
BreakBinaryOperations
选项(也参见 pull request)。您可以将其设置为 OnePerLine
或 RespectPrecedence
(在后一种情况下,例如包含 &&
和 ||
的操作最终导致 &&
操作仍在一行上)。 godbolt 上的实例。
请注意,llvm 版本 20 尚未发布。但根据您的系统,您可能会找到针对它的夜间构建。另外,我发现如果您安装了 Visual Studio,那么在 Windows 上从源代码构建非常容易,所以您可以尝试一下。