# 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
sp_angle_paren = remove  # IARF
sp_angle_word  = force   # 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)

sp_before_byref = remove
sp_before_ptr_star = remove

#
#  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

