# .clang-format 

# Recommended clang-format version: 19 or higher.
# Please note that alignment settings may not be supported in versions below 19.

# Base style to use
BasedOnStyle: Google

# Indentation settings
IndentWidth: 4
UseTab: Never

# Language:
Language: Cpp

# Alignment settings
AlignConsecutiveDeclarations:
  Enabled: true
  AcrossEmptyLines: true
  AcrossComments: true

AlignConsecutiveAssignments:
  Enabled: true
  AcrossEmptyLines: true
  AcrossComments: true

AlignConsecutiveMacros:
  Enabled: true
  AcrossEmptyLines: true
  AcrossComments: true

AlignTrailingComments: true

# Break settings
BreakBeforeBraces: Custom
BraceWrapping:
  AfterFunction: true
  BeforeElse: true
  AfterExternBlock: true

AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false

# Comment settings
CommentPragmas: Preserve
SortIncludes: false

# Case blocks
IndentCaseBlocks: true

# Space settings
SpaceBeforeParens: Custom
SpaceBeforeParensOptions:
  AfterControlStatements: false

# Other settings
ColumnLimit: 120

# Put each one of the function paremeters on its own line.
BinPackParameters: false
AllowAllParametersOfDeclarationOnNextLine: false

# Function call’s arguments will have one line each.
BinPackArguments: false
