-
-
Save intinig/9bba3a3faee80250b781bf916a4ab8b7 to your computer and use it in GitHub Desktop.
--- | |
Language: Cpp | |
AccessModifierOffset: -4 | |
AlignAfterOpenBracket: DontAlign | |
AlignConsecutiveAssignments: false | |
AlignConsecutiveDeclarations: false | |
AlignEscapedNewlines: Left | |
AlignOperands: true | |
AlignTrailingComments: true | |
AllowAllParametersOfDeclarationOnNextLine: true | |
AllowShortBlocksOnASingleLine: false | |
AllowShortCaseLabelsOnASingleLine: false | |
AllowShortFunctionsOnASingleLine: None | |
AllowShortIfStatementsOnASingleLine: false | |
AllowShortLoopsOnASingleLine: false | |
AlwaysBreakAfterReturnType: None | |
AlwaysBreakBeforeMultilineStrings: true | |
AlwaysBreakTemplateDeclarations: Yes | |
BinPackArguments: true | |
BinPackParameters: true | |
BreakBeforeBinaryOperators: None | |
BreakBeforeBraces: Allman | |
BreakBeforeInheritanceComma: false | |
BreakInheritanceList: BeforeColon | |
BreakBeforeTernaryOperators: true | |
BreakConstructorInitializersBeforeComma: false | |
BreakConstructorInitializers: BeforeComma | |
BreakAfterJavaFieldAnnotations: false | |
BreakStringLiterals: true | |
ColumnLimit: 132 | |
CommentPragmas: '^ IWYU pragma:' | |
CompactNamespaces: true | |
ConstructorInitializerAllOnOneLineOrOnePerLine: true | |
ConstructorInitializerIndentWidth: 4 | |
ContinuationIndentWidth: 4 | |
Cpp11BracedListStyle: true | |
DerivePointerAlignment: false | |
DisableFormat: false | |
FixNamespaceComments: true | |
ForEachMacros: | |
- for | |
IncludeBlocks: Regroup | |
IncludeCategories: | |
- Regex: '.*\.generated\.h' | |
Priority: 100 | |
- Regex: '.*(PCH).*' | |
Priority: -1 | |
- Regex: '".*"' | |
Priority: 1 | |
- Regex: '^<.*\.(h)>' | |
Priority: 3 | |
- Regex: '^<.*>' | |
Priority: 4 | |
IncludeIsMainRegex: '([-_](test|unittest))?$' | |
IndentCaseLabels: true | |
IndentPPDirectives: None | |
IndentWidth: 4 | |
IndentWrappedFunctionNames: false | |
JavaScriptQuotes: Leave | |
JavaScriptWrapImports: true | |
KeepEmptyLinesAtTheStartOfBlocks: false | |
MacroBlockBegin: '' | |
MacroBlockEnd: '' | |
MaxEmptyLinesToKeep: 1 | |
NamespaceIndentation: None | |
ObjCBinPackProtocolList: Never | |
ObjCBlockIndentWidth: 2 | |
ObjCSpaceAfterProperty: false | |
ObjCSpaceBeforeProtocolList: true | |
PenaltyBreakAssignment: 2 | |
PenaltyBreakBeforeFirstCallParameter: 1 | |
PenaltyBreakComment: 300 | |
PenaltyBreakFirstLessLess: 120 | |
PenaltyBreakString: 1000 | |
PenaltyBreakTemplateDeclaration: 10 | |
PenaltyExcessCharacter: 1000000 | |
PenaltyReturnTypeOnItsOwnLine: 200 | |
PointerAlignment: Left | |
RawStringFormats: | |
- Language: Cpp | |
Delimiters: | |
- cc | |
- CC | |
- cpp | |
- Cpp | |
- CPP | |
- 'c++' | |
- 'C++' | |
CanonicalDelimiter: '' | |
BasedOnStyle: google | |
- Language: TextProto | |
Delimiters: | |
- pb | |
- PB | |
- proto | |
- PROTO | |
EnclosingFunctions: | |
- EqualsProto | |
- EquivToProto | |
- PARSE_PARTIAL_TEXT_PROTO | |
- PARSE_TEST_PROTO | |
- PARSE_TEXT_PROTO | |
- ParseTextOrDie | |
- ParseTextProtoOrDie | |
CanonicalDelimiter: '' | |
ReflowComments: true | |
SortIncludes: true | |
SortUsingDeclarations: true | |
SpaceAfterCStyleCast: true | |
SpaceAfterTemplateKeyword: true | |
SpaceBeforeAssignmentOperators: true | |
SpaceBeforeCpp11BracedList: false | |
SpaceBeforeCtorInitializerColon: true | |
SpaceBeforeInheritanceColon: true | |
SpaceBeforeParens: ControlStatements | |
SpaceBeforeRangeBasedForLoopColon: true | |
SpaceInEmptyParentheses: false | |
SpacesBeforeTrailingComments: 4 | |
SpacesInAngles: false | |
SpacesInContainerLiterals: true | |
SpacesInCStyleCastParentheses: false | |
SpacesInParentheses: false | |
SpacesInSquareBrackets: false | |
Standard: Auto | |
TabWidth: 4 | |
UseTab: Always | |
... |
Thanks @intinig for such a good clang-format, it can even automatically sort .generated.h
include file to correct order.
For people have below error
YAML:18:34: error: invalid boolean
AlwaysBreakTemplateDeclarations: Yes
^~~
This is because your clang-format version is old, in my test, clang-format-6 notwork, but clang-format-8 works.
# apt install clang-format-8
and in vscode setting
"clang-format.executable": "clang-format-8",
solved my issue.
Shouldn't the SortIncludes
been set to false
?
Shouldn't the
SortIncludes
been set tofalse
?
Why do you say so?
Because the UHT requires a header file been first included in it's cpp file, which would broken the sort include rule.
B.cpp should be:
#include "B.h"
#include "A.h"
however with this option opened, it will be sort to
#include "A.h"
#include "B.h"
this is also mentioned in clang-format's official page:
SortIncludes (bool)
If true, clang-format will sort #includes.
false: true:
#include "b.h" vs. #include "a.h"
#include "a.h" #include "b.h"
What you're saying doesn't consider IncludeBlocks and and IncludeCategories.
If you read the docs on IncludeCategories you'll see the main header always gets priority 0.
Thanks for this file--you saved me a lot of time. The only change I've made so far is NamespaceIndentation to "All" from "None"
Thanks for this file--you saved me a lot of time. The only change I've made so far is NamespaceIndentation to "All" from "None"
No problem :) sharing is caring!
Thank you @intinig
Just asking, is it possible to disable formatting for inline functions?
f.e:
FORCEINLINE class USpringArmComponent* GetCameraBoom() const { return CameraBoom; }
breaks it to
FORCEINLINE class USpringArmComponent* GetCameraBoom() const
{
return CameraBoom;
}
@JanSeliv just place ;
:)
FORCEINLINE class USpringArmComponent* GetCameraBoom() const { return CameraBoom; };
@JanSeliv just place
;
:)
FORCEINLINE class USpringArmComponent* GetCameraBoom() const { return CameraBoom; };
yeah, thank you! :)
Anyone have a similar configuration for clang-tidy?
sweet - you saved me a ton of time, thanks! 👍