# Sets the line endings for the output file
newlines = AUTO  # AUTO/LF/CRLF/CR

# The original tab space value.
# Used to determine what was already aligned. (TODO)
input_tab_size = 2  # number

# Size of tabs in the output.
# Only important if indent_with_tabs=2.
output_tab_size = 2  # number

# The number of columns to indent.
# Usually 2, 3, 4, or 8.
indent_columns = 2  # number

# How to use tabs when indenting code.
#  0 = Use spaces only
#  1 = Use tabs to the brace-level indent (very portable)
#  2 = Use tabs whenever possible
indent_with_tabs = 0  # number

# If an open paren is followed by a newline, indent the next line
# so that it lines up after the open paren.
# Not recommended.
indent_paren_nl = false  # bool

# Changes the space between # and, say, define.
pp_space = ignore  # IARF

# Changes the indent of preprocessors.
pp_indent = ignore  # IARF

# Spaces to indent case from switch (usually 0 or indent_columns).
indent_switch_case = 2  # number  * REVISIT: make TRUE/FALSE? *

# Spaces to indent '{' from level (usually 0). For GNU style, set to 2.
indent_brace = 0  # number

# Whether braces are indented to the body level or not.
indent_braces = false  # bool

indent_class = false
indent_namespace = false

# How to indent goto labels.
# > 0 : Absolute column (1=leftmost column)
# <= 0  : Subtract from brace indent
indent_label = -2  # number

# Whether to indent broken strings so that they line up.
indent_align_string = false  # bool

# Whether to indent comments found in column 1.
indent_col1_comment = false  # bool

# If true, indent continued function call parameters one indent level.
indent_func_call_param = false  # bool



#
#  Spacing Options
#

# Space between ')' and '{'
sp_paren_brace = force  # IARF

# Space after cast - "(int) a" vs "(int)a"
sp_after_cast = remove  # IARF

# Space before & in function definition param:
sp_before_byref = remove  # IARF

# Space inside 'foo( xxx )' vs 'foo(xxx)'
sp_inside_fparen = remove  # IARF

# space inside '+ ( xxx )' vs '+ (xxx)'
sp_inside_paren = remove  # IARF

# space inside 'byte[ 5 ]' vs 'byte[5]'
sp_inside_square = remove  # IARF

# Space inside 'if( xxx )' vs 'if(xxx)'
sp_inside_sparen = remove  # IARF

# Space inside '<>'
sp_inside_angle = remove  # IARF

# Space before '(' of 'if/for/while/switch'.
sp_before_sparen = force  # IARF

# Space after  ')' of 'if/for/while/switch'
sp_after_sparen = force  # IARF

# Space before '<>'
sp_before_angle = remove  # IARF

# Space after '<>'
sp_after_angle = remove  # IARF

# space before all '[', except '[]'
sp_before_square = force  # IARF

# space before '[]'
sp_before_squares = remove  # IARF

# space between nested parens - '( (' vs '(('
sp_paren_paren = remove  # IARF

# space between 'return' and '('
sp_return_paren = force  # IARF

# space between 'sizeof' and '('
sp_sizeof_paren = remove  # IARF

# space after ','
sp_after_comma = force  # IARF

# space around + - / * etc
sp_arith = force  # IARF

# space around || &&
sp_bool = force  # IARF

# space around < > ==, etc
sp_compare = force  # IARF

# space around =, +=, etc
sp_assign = force  # IARF

# space between 'func' and '(' - "foo (" vs "foo("
sp_func_def_paren = remove  # IARF

# space between 'func' and '(' - "foo (" vs "foo("
sp_func_call_paren = remove  # IARF

# space between 'func' and '(' - "foo (" vs "foo("
sp_func_proto_paren = remove  # IARF

# Space between return type and 'func'
#sp_type_func = force  # IARF

# Space empty stmt ';' on while, if, for
sp_special_semi = force  # IARF

# Space before all ';'
sp_before_semi = remove  # IARF

# Space inside '{' and '}' - "{ 1, 2, 3 }"
sp_inside_braces = remove  # IARF

# Space inside enum '{' and '}' - "{ a, b, c }"
sp_inside_braces_enum = remove  # IARF

# Space inside struct/union '{' and '}'
sp_inside_braces_struct = remove  # IARF



#
#  Code alignment (not left column spaces/tabs)
#

# Use tabs for aligning.
align_with_tabs = false  # bool

# Keep non-indenting tabs.
align_keep_tabs = false  # bool

# When aligning, bump out to the next tabstop.
align_on_tabstop = false  # bool

# Align the back-slash \n combo (macros)
align_nl_cont = true  # bool

# Align the '=' in enums
align_enum_equ_span = 0  # bool

# The span for aligning on '=' in assignments. 0=don't align
align_assign_span = 0  # number

# Span for aligning comments that end lines. 0=don't align
align_right_cmt_span = 0  # number

# Span for aligning variable definitions
align_var_def_span = 0  # number

# Whether to align inline struct/enum/union var defs
align_var_def_inline = 0  # bool

# Whether the star is part of the variable name or not.
align_var_def_star_style = 2  # bool

# Align the colon in struct bit fields
align_var_def_colon = false  # bool

# Span for struct/union (0=don't align)
align_var_struct_span = 0  # number

# align bodies in #define statements
align_pp_define_span = 0  # number

# Min space between define label and value "#define a <---> 16"
align_pp_define_gap = 1  # number

# Align structure initializer values
align_struct_init_span = 0  # number

# Align function prototypes
align_func_proto_span = 0  # number

# left-align numbers
#align_number_left:  bool  * a little buggy *

# align single-line typedefs
#align_typedef_span:  number

# minimum spacing
#align_typedef_gap:  number

# Start aligning style
#  0: '*' not part of type
#  1: '*' part of the type - no space
#  2: '*' part of type, dangling
align_typedef_star_style = 0  # number



#
#  Newline adding and removing options
#

# "int foo() {" vs "int foo()\n{"
nl_fdef_brace = force  # IARF

# Newline after '(' in a function decl
nl_func_decl_start = remove  # IARF

# Newline after each ',' in a function decl
nl_func_decl_args = remove  # IARF

# Newline before the ')' in a function decl
nl_func_decl_end = remove  # IARF

# Newline between return type and func name in def
nl_func_type_name = remove  # IARF

# Newline after a block of variable defs
nl_func_var_def_blk = 0  # number

# newline before 'case' statement
nl_before_case = false  # bool

# newline after return statement
nl_after_return = true  # bool

# Disallow nested "case 1: a=3;"
nl_after_case = true  # bool

# newline between function call and open brace
nl_fcall_brace = remove  # IARF

# No blanks after #ifxx, #elxx, or before #endif
nl_squeeze_ifdef = false  # bool

# nl between enum and brace
nl_enum_brace = remove  # IARF

# nl between struct and brace
nl_struct_brace = remove  # IARF

# nl between union and brace
nl_union_brace = remove  # IARF

# nl between = and {
nl_assign_brace = remove  # IARF

# nl between do and {
nl_do_brace = remove  # IARF

# nl between if and {
nl_if_brace = remove  # IARF

# nl between for and {
nl_for_brace = remove  # IARF

# nl between else and {
nl_else_brace = remove  # IARF

# nl between while and {
nl_while_brace = remove  # IARF

# nl between switch and {
nl_switch_brace = remove  # IARF

# nl between } and else
nl_brace_else = remove  # IARF

# nl between } and while of do stmt
nl_brace_while = remove  # IARF

# Alter newlines in #define macros
nl_define_macro = false  # bool

# Add or remove newlines at the start of the file
nl_start_of_file = remove  # IARF

# Number of newlines at the start of the file. Only used if nl_start_of_file is Add or Force
#nl_start_of_file_min: number

# Add or remove newlines at the end of the file
nl_end_of_file = force  # IARF

# Number of newlines at the end of the file. Only used if nl_end_of_file is Add or Force
nl_end_of_file_min = 1  # number

# -1: boolean ops are at the end of the line
#  0: do not move boolean ops (default)
#  1: boolean ops are at the start of the line
pos_bool = Trail  # position (Trail, None, Lead)



#
#  Blank line options
#  Note that it takes 2 newlines to get a blank line.
#

# Minimum number of newlines before a multi-line comment.
nl_before_block_comment = 2  # number

# Newlines after the closing brace of a function body
nl_after_func_body = 2  # number

# Newlines after a single function prototype.
nl_after_func_proto = 1  # number

# Newlines after a prototype, if not followed by another prototype.
nl_after_func_proto_group = 2  # number

# The maximum consecutive newlines.
nl_max = 4  # number

# Remove blank lines after {
eat_blanks_after_open_brace = true  # bool

# Remove blank lines before }
eat_blanks_before_close_brace = true  # bool



#
#  code modifying options (non-whitespace)
#

# Add or remove unecessary paren on return.
mod_paren_on_return = remove  # IARF

# add or remove braces on single-statement if
mod_full_brace_if = add  # IARF

# add or remove braces on single-statement for
mod_full_brace_for = add  # IARF

# add or remove braces on single-statement do
mod_full_brace_do = add  # IARF

# add or remove braces on single-statement while
mod_full_brace_while = add  # IARF

# don't remove braces around statements that span X newlines
#mod_full_brace_nl:  number



#
#  Comment modifications
#

# Put a star on subsequent comment lines
#cmt_star_cont:  bool

