相关文章的答案是如何使clang格式在函数的大括号前添加新行?没有帮助。
我在Windows上的Eclipse CDT中使用了带有Cppstyle的clang格式9.0.0。clang格式格式化如下getter:
int returnNumber() { return 3; }
但是我更喜欢格式
int returnNumber()
{
return 3;
}
我无法使clang格式做到这一点,无论是使用破坏样式BS_Allman
还是使用自定义样式。除了手动格式化,还有其他解决方案吗?
我的示例源文件如下:
收割台.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
配置的问题是您错过了这个用短函数控制clang-format
行为的选项。
将此添加到您的配置中,一切都会很好:
AllowShortFunctionsOnASingleLine: None
引用clang格式文档:
AllowShortFunctionsOnSingleLine(ShortFunctionStyle(
根据值的不同,
int f() { return 0; }
可以放在一行上。可能值:
SFS_None
(配置中:无(从不将函数合并到一行中。
SFS_InlineOnly
(配置中:InlineOnly(仅合并类内部定义的函数。与"内联"相同,只是它没有暗示"空":即顶层空函数也不合并。
SFS_Empty
(配置中:空(仅合并空函数。
SFS_Inline
(在配置中:内联(仅合并类内部定义的函数。意味着"空"。
SFS_All
(配置中:全部(合并所有适合一行的函数。