BasedOnStyle: LLVM  # Options: LLVM, Google, Chromium, Mozilla, WebKit, Microsoft

# Return type on separate line
AlwaysBreakAfterReturnType: All

# Function parameters
BinPackParameters: false
AllowAllParametersOfDeclarationOnNextLine: true

# Indentation
IndentWidth: 4
TabWidth: 4
UseTab: Never
ColumnLimit: 100

# Braces
BreakBeforeBraces: Allman  # Options: Attach, Linux, Stroustrup, Allman

# Pointers and References
PointerAlignment: Left  # int* ptr  (or Right for int *ptr)
ReferenceAlignment: Left

# Spacing
SpacesInAngles: Always  # static_cast< int >
SpacesInSquareBrackets: true  # Changed from false
SpaceBeforeParens: false
SpacesInParentheses: true  # ( like this )
SpaceAfterCStyleCast: true

# Function formatting
AllowShortFunctionsOnASingleLine: Empty # other option is Inline
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLoopsOnASingleLine: false

# Other
SortIncludes: true
IncludeBlocks: Regroup
#MaxEmptyLinesToKeep: 1
