相关帖子how to make clang-format add new line before opening brace of a function?的答案无济于事。
我在Windows上的Eclipse CDT中将clang格式9.0.0与Cppstyle一起使用。 clang格式像这样格式化以下吸气剂:
int returnNumber() { return 3; }
但我更喜欢格式
int returnNumber()
{
return 3;
}
我既无法使用断言BS_Allman
也无法使用自定义样式来实现clang格式。除了手动格式化还有其他解决方案吗?
我的示例源文件如下:
Header.h
#pragma once
namespace Test
{
class MyClass
{
public:
int returnNumber() { return 3; }
};
} /* namespace Test */
我的配置文件如下:
Language: Cpp
AlwaysBreakTemplateDeclarations: 'true'
BreakBeforeBraces: Allman
ColumnLimit: '80'
IndentWidth: '2'
NamespaceIndentation: None
Standard: Cpp11
TabWidth: '2'
UseTab: Always
PointerAlignment: Left
AlignAfterOpenBracket: DontAlign
BreakConstructorInitializers: AfterColon
MaxEmptyLinesToKeep: 2
答案 0 :(得分:1)
您的配置存在问题,因为您错过了使用简短功能控制clang-format
行为的选项。
将此添加到您的配置中,进行传送将很不错:
AllowShortFunctionsOnASingleLine: None
AllowShortFunctionsOnASingleLine(ShortFunctionStyle)
根据值,
int f() { return 0; }
可以放在一行上。可能的值:
SFS_None
(在配置中:无)切勿将函数合并为一行。
SFS_InlineOnly
(在配置中:InlineOnly)仅合并在类内部定义的函数。与“内联”相同,不同之处在于 表示“空”:即顶级空函数也不会合并。
SFS_Empty
(在配置中:空)仅合并空函数。
SFS_Inline
(在配置中:内联)仅合并在类内部定义的函数。表示“空”。
SFS_All
(配置:全部)合并适合一行的所有功能。