Skip to content

Instantly share code, notes, and snippets.

@intinig
Last active January 13, 2024 11:56
Show Gist options
  • Save intinig/9bba3a3faee80250b781bf916a4ab8b7 to your computer and use it in GitHub Desktop.
Save intinig/9bba3a3faee80250b781bf916a4ab8b7 to your computer and use it in GitHub Desktop.
.clang-format for UE4
---
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
...
@brycehutchings
Copy link

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"

@intinig
Copy link
Author

intinig commented Jun 23, 2020

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!

@JanSeliv
Copy link

JanSeliv commented Jul 7, 2020

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;
}

@ufna
Copy link

ufna commented Dec 28, 2020

@JanSeliv just place ; :)

FORCEINLINE class USpringArmComponent* GetCameraBoom() const { return CameraBoom; };

@JanSeliv
Copy link

JanSeliv commented Jan 2, 2021

@JanSeliv just place ; :)

FORCEINLINE class USpringArmComponent* GetCameraBoom() const { return CameraBoom; };

yeah, thank you! :)

@freaknbigpanda
Copy link

freaknbigpanda commented Feb 25, 2021

This is breaking my code, for example:

image

becomes:

image

And it doesn't compile, any idea what setting would be causing this?

@ughstudios
Copy link

Anyone have a similar configuration for clang-tidy?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment