# STM32duino code style definition file for astyle

# Don't create backup files, let git handle it
suffix=none

# K&R style
style=kr

# 1 TBS addition to k&r, add braces to one liners
# Use -j as it was changed in astyle from brackets to braces, this way it is compatible with older astyle versions
-j

# 2 spaces, convert tabs to spaces
indent=spaces=2
convert-tabs
lineend=linux

# Indent switches and cases
indent-classes
indent-switches
indent-cases
indent-col1-comments
indent-preproc-block

# Remove spaces in and around parentheses
unpad-paren

# Insert a space after if, while, for, and around operators
pad-header
pad-oper

# Pointer/reference operators go next to the name (on the right)
align-pointer=name
align-reference=name

# Attach { for classes and namespaces
attach-namespaces
attach-classes

# Extend longer lines, define maximum 120 value. This results in aligned code,
# otherwise the lines are broken and not consistent
max-continuation-indent=120

# if you like one-liners, keep them
keep-one-line-statements

#remove-comment-prefix

# Do not error our when a directory is excluded that does not contain
# any files to process
ignore-exclude-errors

# Exclude some files
exclude=.git
exclude=docs
exclude=api-docs
# These files are taken verbatim from STM32CubeWL, so minimize changes
# to them
exclude=src/STM32CubeWL
exclude=src/BSP/timer_if.c
exclude=src/BSP/timer_if.h
exclude=src/BSP/rtc.c
exclude=src/BSP/rtc.h

# Allow oneline blocks, to allow very small functions to be defined
# on a single line in header files.
keep-one-line-blocks
