-
-
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
SortIncludesbeen 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! 👍