#
# General options
#

# The type of line endings
newlines                                 = auto     # auto/lf/crlf/cr

# The original size of tabs in the input
input_tab_size                           = 4        # number

# The size of tabs in the output (only used if align_with_tabs=true)
output_tab_size                          = 4        # number

# The ascii value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
string_escape_char                       = 92       # number

# Alternate string escape char for Pawn. Only works right before the quote char.
string_escape_char2                      = 0        # number

#
# Indenting
#

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

# How to use tabs when indenting code
# 0=spaces only
# 1=indent with tabs, align with spaces
# 2=indent and align with tabs
indent_with_tabs                         = 0        # number

# Whether to indent strings broken by '\' so that they line up
indent_align_string                      = true    # false/true

# The number of spaces to indent multi-line XML strings.
# Requires indent_align_string=True
indent_xml_string                        = 0        # number

# Spaces to indent '{' from level
indent_brace                             = 0        # number

# Whether braces are indented to the body level
indent_braces                            = false    # false/true

# Disabled indenting function braces if indent_braces is true
indent_braces_no_func                    = false    # false/true

# Indent based on the size of the brace parent, ie 'if' => 3 spaces, 'for' => 4 spaces, etc.
indent_brace_parent                      = false    # false/true

# Whether the 'namespace' body is indented
indent_namespace                         = false    # false/true

# Whether the 'class' body is indented
indent_class                             = false    # false/true

# Whether to indent the stuff after a leading class colon
indent_class_colon                       = false    # false/true

# True:  indent continued function call parameters one indent level
# False: align parameters under the open paren
indent_func_call_param                   = false    # false/true

# Same as indent_func_call_param, but for function defs
indent_func_def_param                    = false    # false/true

# Same as indent_func_call_param, but for function protos
indent_func_proto_param                  = false    # false/true

# Same as indent_func_call_param, but for class declarations
indent_func_class_param                  = false    # false/true

# Same as indent_func_call_param, but for class variable constructors
indent_func_ctor_var_param               = false    # false/true

# Double the indent for indent_func_xxx_param options
indent_func_param_double                 = false    # false/true

# The number of spaces to indent a continued '->' or '.'
# Usually set to 0, 1, or indent_columns.
indent_member                            = 4        # number

# Spaces to indent single line ('//') comments on lines before code
indent_sing_line_comments                = 0        # number

# Spaces to indent 'case' from 'switch'
# Usually 0 or indent_columns.
indent_switch_case                       = 4        # number

# Spaces to shift the 'case' line, without affecting any other lines
# Usually 0.
indent_case_shift                        = 4        # number

# Spaces to indent '{' from 'case'.
# By default, the brace will appear under the 'c' in case.
# Usually set to 0 or indent_columns.
indent_case_brace                        = 4        # number

# Whether to indent comments found in first column
indent_col1_comment                      = false    # false/true

# How to indent goto labels
#  >0 : absolute column where 1 is the leftmost column
#  <=0 : subtract from brace indent
indent_label                             = 1        # number

# Same as indent_label, but for access specifiers that are followed by a colon
indent_access_spec                       = 1        # 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    # false/true

# Controls the indent of a close paren after a newline.
# 0: Indent to body level
# 1: Align under the open paren
# 2: Indent to the brace level
indent_paren_close                       = 1        # number

# Controls the indent of a comma when inside a paren.If TRUE, aligns under the open paren
indent_comma_paren                       = false    # false/true

# Controls the indent of a BOOL operator when inside a paren.If TRUE, aligns under the open paren
indent_bool_paren                        = false    # false/true

# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
indent_square_nl                         = false    # false/true

# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
indent_preserve_sql                      = false    # false/true

#
# Spacing options
#

# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
sp_arith                                 = force   # ignore/add/remove/force

# Add or remove space around assignment operator '=', '+=', etc
sp_assign                                = force   # ignore/add/remove/force

# Add or remove space around boolean operators '&&' and '||'
sp_bool                                  = force   # ignore/add/remove/force

# Add or remove space around compare operator '<', '>', '==', etc
sp_compare                               = force   # ignore/add/remove/force

# Add or remove space inside '(' and ')'
sp_inside_paren                          = ignore   # ignore/add/remove/force

# Add or remove space between nested parens
sp_paren_paren                           = force   # ignore/add/remove/force

# Whether to balance spaces inside nested parens
sp_balance_nested_parens                 = true    # false/true

# Add or remove space between ')' and '{'
sp_paren_brace                           = remove   # ignore/add/remove/force

# Add or remove space before pointer star '*'
sp_before_ptr_star                       = force   # ignore/add/remove/force

# Add or remove space between pointer stars '*'
sp_between_ptr_star                      = remove   # ignore/add/remove/force

# Add or remove space after pointer star '*', if followed by a word.
sp_after_ptr_star                        = remove   # ignore/add/remove/force

# Add or remove space before reference sign '&'
sp_before_byref                          = force   # ignore/add/remove/force

# Add or remove space after reference sign '&', if followed by a word.
sp_after_byref                           = remove   # ignore/add/remove/force

# Add or remove space before '<>'
sp_before_angle                          = force   # ignore/add/remove/force

# Add or remove space after '<>'
sp_after_angle                           = force   # ignore/add/remove/force

# Add or remove space between '<>' and '(' as found in 'new List<byte>();'
sp_angle_paren                           = remove   # ignore/add/remove/force

# Add or remove space between '<>' and a word as in 'List<byte> m;'
sp_angle_word                            = force   # ignore/add/remove/force

# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
sp_before_sparen                         = force   # ignore/add/remove/force

# Add or remove space inside if-condition '(' and ')'
sp_inside_sparen                         = remove   # ignore/add/remove/force

# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
sp_after_sparen                          = remove   # ignore/add/remove/force

# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
sp_sparen_brace                          = remove   # ignore/add/remove/force

# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
sp_special_semi                          = force   # ignore/add/remove/force

# Add or remove space before ';'
sp_before_semi                           = remove   # ignore/add/remove/force

# Add or remove space before ';' in non-empty 'for' statements
sp_before_semi_for                       = force   # ignore/add/remove/force

# Add or remove space before a semicolon of an empty part of a for statment.
sp_before_semi_for_empty                 = force   # ignore/add/remove/force

# Add or remove space after the final semicolon of an empty part of a for statment: for ( ; ; <here> ).
sp_after_semi_for_empty                  = force   # ignore/add/remove/force

# Add or remove space before '[' (except '[]')
sp_before_square                         = remove   # ignore/add/remove/force

# Add or remove space before '[]'
sp_before_squares                        = remove   # ignore/add/remove/force

# Add or remove space inside '[' and ']'
sp_inside_square                         = remove   # ignore/add/remove/force

# Add or remove space after ','
sp_after_comma                           = force   # ignore/add/remove/force

# Add or remove space before ','
sp_before_comma                          = remove   # ignore/add/remove/force

# Add or remove space between 'operator' and operator sign
sp_after_operator                        = force   # ignore/add/remove/force

# Add or remove space after cast
sp_after_cast                            = force   # ignore/add/remove/force

# Add or remove spaces inside cast parens
sp_inside_paren_cast                     = remove   # ignore/add/remove/force

# Add or remove space between 'sizeof' and '('
sp_sizeof_paren                          = remove   # ignore/add/remove/force

# Add or remove space after the tag keyword (Pawn)
sp_after_tag                             = ignore   # ignore/add/remove/force

# Add or remove space inside enum '{' and '}'
sp_inside_braces_enum                    = force   # ignore/add/remove/force

# Add or remove space inside struct/union '{' and '}'
sp_inside_braces_struct                  = remove   # ignore/add/remove/force

# Add or remove space inside '{' and '}'
sp_inside_braces                         = force   # ignore/add/remove/force

# Add or remove space inside '<' and '>'
sp_inside_angle                          = remove   # ignore/add/remove/force

# Add or remove space between return type and function name
# A minimum of 1 is forced except for pointer return types.
sp_type_func                             = remove   # ignore/add/remove/force

# Add or remove space between function name and '(' on function declaration
sp_func_proto_paren                      = remove   # ignore/add/remove/force

# Add or remove space between function name and '(' on function definition
sp_func_def_paren                        = remove   # ignore/add/remove/force

# Add or remove space inside empty function '()'
sp_inside_fparens                        = remove   # ignore/add/remove/force

# Add or remove space inside function '(' and ')'
sp_inside_fparen                         = remove   # ignore/add/remove/force

# Add or remove space between ']' and '(' when part of a function call.
sp_square_fparen                         = remove   # ignore/add/remove/force

# Add or remove space between ')' and '{' of function
sp_fparen_brace                          = remove   # ignore/add/remove/force

# Add or remove space between function name and '(' on function calls
sp_func_call_paren                       = remove   # ignore/add/remove/force

# Add or remove space between a constructor/destructor and the open paren
sp_func_class_paren                      = ignore   # ignore/add/remove/force

# Add or remove space between 'return' and '('
sp_return_paren                          = force   # ignore/add/remove/force

# Add or remove space between '__attribute__' and '('
sp_attribute_paren                       = force   # ignore/add/remove/force

# Add or remove space between macro and value
sp_macro                                 = force   # ignore/add/remove/force

# Add or remove space between macro function ')' and value
sp_macro_func                            = force   # ignore/add/remove/force

# Add or remove space between 'else' and '{' if on the same line
sp_else_brace                            = ignore   # ignore/add/remove/force

# Add or remove space between '}' and 'else' if on the same line
sp_brace_else                            = ignore   # ignore/add/remove/force

# Add or remove space between 'catch' and '{' if on the same line
sp_catch_brace                           = ignore   # ignore/add/remove/force

# Add or remove space between '}' and 'catch' if on the same line
sp_brace_catch                           = ignore   # ignore/add/remove/force

# Add or remove space between 'finally' and '{' if on the same line
sp_finally_brace                         = ignore   # ignore/add/remove/force

# Add or remove space between '}' and 'finally' if on the same line
sp_brace_finally                         = ignore   # ignore/add/remove/force

# Add or remove space between 'try' and '{' if on the same line
sp_try_brace                             = ignore   # ignore/add/remove/force

# Add or remove space between get/set and '{' if on the same line
sp_getset_brace                          = ignore   # ignore/add/remove/force

# Add or remove space before the '::' operator
sp_before_dc                             = remove   # ignore/add/remove/force

# Add or remove space after the '::' operator
sp_after_dc                              = remove   # ignore/add/remove/force

# Add or remove around the D named array initializer ':' operator
sp_d_array_colon                         = ignore   # ignore/add/remove/force

# Add or remove space after the '!' (not) operator.
sp_not                                   = remove   # ignore/add/remove/force

# Add or remove space after the '~' (invert) operator.
sp_inv                                   = remove   # ignore/add/remove/force

# Add or remove space after the '&' (address-of) operator.
# This does not affect the spacing after a '&' that is part of a type.
sp_addr                                  = remove   # ignore/add/remove/force

# Add or remove space around the '.' or '->' operators
sp_member                                = remove   # ignore/add/remove/force

# Add or remove space after the '*' (dereference) operator.
# This does not affect the spacing after a '*' that is part of a type.
sp_deref                                 = remove   # ignore/add/remove/force

# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'
sp_sign                                  = remove   # ignore/add/remove/force

# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'
sp_incdec                                = remove   # ignore/add/remove/force

# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;'
sp_after_oc_scope                        = ignore   # ignore/add/remove/force

# Add or remove space after the colon in message specs
# '-(int) f: (int) x;' vs '+(int) f : (int) x;'
sp_before_oc_colon                       = force   # ignore/add/remove/force

# Add or remove space after the (type) in message specs
# '-(int) f: (int) x;' vs '+(int)f : (int)x;'
sp_after_oc_type                         = force   # ignore/add/remove/force

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

# Whether to keep non-indenting tabs
align_keep_tabs                          = false    # false/true

# Whether to use tabs for alinging
align_with_tabs                          = false    # false/true

# Whether to bump out to the next tab when aligning
align_on_tabstop                         = false    # false/true

# Whether to left-align numbers
align_number_left                        = false    # false/true

# Align variable definitions in prototypes and functions
align_func_params                        = true     # false/true

# The span for aligning variable definitions (0=don't align)
align_var_def_span                       = 20        # number

# How to align the star in variable definitions.
#  0=Part of the type
#  1=Part of the variable
#  2=Dangling
align_var_def_star_style                 = 0        # number

# How to align the '&' in variable definitions.
#  0=Part of the type
#  1=Part of the variable
#  2=Dangling
align_var_def_amp_style                  = 0        # number

# The threshold for aligning variable definitions (0=no limit)
align_var_def_thresh                     = 0        # number

# Whether to align the colon in struct bit fields
align_var_def_colon                      = false    # false/true

# Whether to align inline struct/enum/union variable definitions
align_var_def_inline                     = true     # false/true

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

# The threshold for aligning on '=' in assignments (0=no limit)
align_assign_thresh                      = 30       # number

# The span for aligning on '=' in enums (0=don't align)
align_enum_equ_span                      = 10        # number

# The threshold for aligning on '=' in enums (0=no limit)
align_enum_equ_thresh                    = 12       # number

# The span for aligning struct/union (0=don't align)
align_var_struct_span                    = 30        # number

# The threshold for aligning struct/union member definitions (0=no limit)
align_var_struct_thresh                  = 30        # number

# The span for aligning struct initializer values (0=don't align)
align_struct_init_span                   = 8        # number

# The minimum space between the type and the synonym of a typedef
align_typedef_gap                        = 4        # number

# The span for aligning single-line typedefs (0=don't align)
align_typedef_span                       = 5        # number

# How to align typedef'd functions with other typedefs
# 0: Don't mix them at all
# 1: align the open paren with the types
# 2: align the function type name with the other type names
align_typedef_func                       = 0        # number

# Controls the positioning of the '*' in typedefs. Just try it.
# 0: Align on typdef type, ignore '*'
# 1: The '*' is part of type name: typedef int  *pint;
# 2: The '*' is part of the type, but dangling: typedef int *pint;
align_typedef_star_style                 = 2        # number

# Controls the positioning of the '&' in typedefs. Just try it.
# 0: Align on typdef type, ignore '&'
# 1: The '&' is part of type name: typedef int  &pint;
# 2: The '&' is part of the type, but dangling: typedef int &pint;
align_typedef_amp_style                  = 2        # number

# The span for aligning comments that end lines (0=don't align)
align_right_cmt_span                     = 3        # number

# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
align_right_cmt_mix                      = false    # false/true

# The span for aligning function prototypes (0=don't align)
align_func_proto_span                    = 3        # number

# The span for aligning function prototypes (0=don't align)
align_oc_msg_spec_span                   = 3        # number

# Whether to align macros wrapped with a backslash and a newline.
# This will not work right if the macro contains a multi-line comment.
align_nl_cont                            = true     # false/true

# The minimum space between label and value of a preprocessor define
align_pp_define_gap                      = 2        # number

# The span for aligning on '#define' bodies (0=don't align)
align_pp_define_span                     = 50       # number

#
# Newline adding and removing options
#

# Whether to collapse empty blocks between '{' and '}'
nl_collapse_empty_body                   = false    # false/true

# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };'
nl_assign_leave_one_liners               = false    # false/true

# Don't split one-line braced statements inside a class xx { } body
nl_class_leave_one_liners                = false    # false/true

# Don't split one-line enums: 'enum foo { BAR = 15 };'
nl_enum_leave_one_liners                 = false    # false/true

# Don't split one-line get or set functions
nl_getset_leave_one_liners               = false    # false/true

# Don't split one-line function definitions - 'int foo() { return 0; }'
nl_func_leave_one_liners                 = false    # false/true

# Don't split one-line if/else statements - 'if(a) b++;'
nl_if_leave_one_liners                   = false    # false/true

# Add or remove newlines at the start of the file
nl_start_of_file                         = remove   # ignore/add/remove/force

# The 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                     = 0        # number

# Add or remove newline at the end of the file
nl_end_of_file                           = force   # ignore/add/remove/force

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

# Add or remove newline between '=' and '{'
nl_assign_brace                          = force   # ignore/add/remove/force

# Add or remove newline between '=' and '[' (D only)
nl_assign_square                         = ignore   # ignore/add/remove/force

# Add or remove newline after '= [' (D only). Will also affect the newline before the ']'
nl_after_square_assign                   = ignore   # ignore/add/remove/force

# The number of newlines after a block of variable definitions
nl_func_var_def_blk                      = 1        # number

# Add or remove newline between a function call's ')' and '{', as in:
# list_for_each(item, &list) { }
nl_fcall_brace                           = force   # ignore/add/remove/force

# Add or remove newline between 'enum' and '{'
nl_enum_brace                            = add   # ignore/add/remove/force

# Add or remove newline between 'struct and '{'
nl_struct_brace                          = add   # ignore/add/remove/force

# Add or remove newline between 'union' and '{'
nl_union_brace                           = add   # ignore/add/remove/force

# Add or remove newline between 'if' and '{'
nl_if_brace                              = add   # ignore/add/remove/force

# Add or remove newline between '}' and 'else'
nl_brace_else                            = add   # ignore/add/remove/force

# Add or remove newline between 'else if' and '{'
# If set to ignore, nl_if_brace is used instead
nl_elseif_brace                          = add   # ignore/add/remove/force

# Add or remove newline between 'else' and '{'
nl_else_brace                            = add   # ignore/add/remove/force

# Add or remove newline between '}' and 'finally'
nl_brace_finally                         = ignore   # ignore/add/remove/force

# Add or remove newline between 'finally' and '{'
nl_finally_brace                         = ignore   # ignore/add/remove/force

# Add or remove newline between 'try' and '{'
nl_try_brace                             = ignore   # ignore/add/remove/force

# Add or remove newline between get/set and '{'
nl_getset_brace                          = ignore   # ignore/add/remove/force

# Add or remove newline between 'for' and '{'
nl_for_brace                             = add   # ignore/add/remove/force

# Add or remove newline between 'catch' and '{'
nl_catch_brace                           = ignore   # ignore/add/remove/force

# Add or remove newline between '}' and 'catch'
nl_brace_catch                           = ignore   # ignore/add/remove/force

# Add or remove newline between 'while' and '{'
nl_while_brace                           = add   # ignore/add/remove/force

# Add or remove newline between 'do' and '{'
nl_do_brace                              = add   # ignore/add/remove/force

# Add or remove newline between '}' and 'while' of 'do' statement
nl_brace_while                           = add   # ignore/add/remove/force

# Add or remove newline between 'switch' and '{'
nl_switch_brace                          = add   # ignore/add/remove/force

# Add or remove newline when condition spans two or more lines
nl_multi_line_cond                       = false    # false/true

# Force a newline in a define after the macro name for multi-line defines.
nl_multi_line_define                     = true    # false/true

# Whether to put a newline before 'case' statement
nl_before_case                           = true    # false/true

# Whether to put a newline after 'case' statement
nl_after_case                            = false    # false/true

# Newline between namespace and {
nl_namespace_brace                       = add   # ignore/add/remove/force

# Add or remove newline between 'template<>' and 'class'
nl_template_class                        = ignore   # ignore/add/remove/force

# Add or remove newline between 'class' and '{'
nl_class_brace                           = ignore   # ignore/add/remove/force

# Add or remove newline after each ',' in the constructor member initialization
nl_class_init_args                       = ignore   # ignore/add/remove/force

# Add or remove newline between return type and function name in definition
nl_func_type_name                        = remove   # ignore/add/remove/force

# Add or remove newline between return type and function name in a prototype
nl_func_proto_type_name                  = remove   # ignore/add/remove/force

# Add or remove newline between a function name and the opening '('
nl_func_paren                            = remove   # ignore/add/remove/force

# Add or remove newline after '(' in a function declaration
nl_func_decl_start                       = remove   # ignore/add/remove/force

# Add or remove newline after each ',' in a function declaration
nl_func_decl_args                        = ignore   # ignore/add/remove/force

# Add or remove newline before the ')' in a function declaration
nl_func_decl_end                         = ignore   # ignore/add/remove/force

# Add or remove newline between function signature and '{'
nl_fdef_brace                            = add   # ignore/add/remove/force

# Whether to put a newline after 'return' statement
nl_after_return                          = true    # false/true

# Whether to put a newline after semicolons, except in 'for' statements
nl_after_semicolon                       = true    # false/true

# Whether to put a newline after brace open.
# This also adds a newline before the matching brace close.
nl_after_brace_open                      = true    # false/true

# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
# placed between the open brace and a trailing single-line comment.
nl_after_brace_open_cmt                  = true    # false/true

# Whether to put a newline after a virtual brace open.
# These occur in un-braced if/while/do/for statement bodies.
nl_after_vbrace_open                     = true    # false/true

# Whether to alter newlines in '#define' macros
nl_define_macro                          = true    # false/true

# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
nl_squeeze_ifdef                         = false    # false/true

# Add or remove newline before 'if'
nl_before_if                             = add   # ignore/add/remove/force

# Add or remove newline after 'if'
nl_after_if                              = add   # ignore/add/remove/force

# Add or remove newline before 'for'
nl_before_for                            = add   # ignore/add/remove/force

# Add or remove newline after 'for'
nl_after_for                             = add   # ignore/add/remove/force

# Add or remove newline before 'while'
nl_before_while                          = add   # ignore/add/remove/force

# Add or remove newline after 'while'
nl_after_while                           = add   # ignore/add/remove/force

# Add or remove newline before 'switch'
nl_before_switch                         = add   # ignore/add/remove/force

# Add or remove newline after 'switch'
nl_after_switch                          = add   # ignore/add/remove/force

# Add or remove newline before 'do'
nl_before_do                             = add   # ignore/add/remove/force

# Add or remove newline after 'do'
nl_after_do                              = add   # ignore/add/remove/force

# Whether to double-space commented-entries in struct/enum
nl_ds_struct_enum_cmt                    = true    # false/true

# Whether to double-space before the close brace of a struct/union/enum
nl_ds_struct_enum_close_brace            = true    # false/true

# Add or remove a newline around a class colon.
# Related to pos_class_colon, nl_class_init_args, and pos_comma.
nl_class_colon                           = ignore   # ignore/add/remove/force

# Change simple unbraced if statements into a one-liner
# 'if(b)\n i++;' => 'if(b) i++;'
nl_create_if_one_liner                   = false    # false/true

# Change simple unbraced for statements into a one-liner
# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);'
nl_create_for_one_liner                  = false    # false/true

# Change simple unbraced while statements into a one-liner
# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);'
nl_create_while_one_liner                = false    # false/true

#
# Positioning options
#

# The position of boolean operators in wrapped expressions
pos_bool                                 = ignore   # ignore/lead/trail

# The position of the comma in wrapped expressions
pos_comma                                = trail   # ignore/lead/trail

# The position of the comma in the constructor initialization list
pos_class_comma                          = ignore   # ignore/lead/trail

# The position of colons between constructor and member initialization
pos_class_colon                          = ignore   # ignore/lead/trail

#
# Line Splitting options
#

# Try to limit code width to N number of columns
code_width                               = 80        # number

# Whether to fully split long 'for' statements at semi-colons
ls_for_split_full                        = true    # false/true

# Whether to fully split long function protos/calls at commas
ls_func_split_full                       = true    # false/true

#
# Blank line options
#

# The maximum consecutive newlines
nl_max                                   = 3        # number

# The number of newlines after a function prototype, if followed by another function prototype
nl_after_func_proto                      = 1        # number

# The number of newlines after a function prototype, if not followed by another function prototype
nl_after_func_proto_group                = 3        # number

# The number of newlines after '}' of a multi-line function body
nl_after_func_body                       = 5        # number

# The number of newlines after '}' of a single line function body
nl_after_func_body_one_liner             = 5        # number

# The minimum number of newlines before a multi-line comment.
# Doesn't apply if after a brace open or another multi-line comment.
nl_before_block_comment                  = 1        # number

# The minimum number of newlines before a single-line C comment.
# Doesn't apply if after a brace open or other single-line C comments.
nl_before_c_comment                      = 1        # number

# The minimum number of newlines before a CPP comment.
# Doesn't apply if after a brace open or other CPP comments.
nl_before_cpp_comment                    = 1        # number

# Whether to force a newline after a mulit-line comment.
nl_after_multiline_comment               = true    # false/true

# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
# Will not change the newline count if after a brace open.
# 0 = No change.
nl_before_access_spec                    = 0        # number

# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
# 0 = No change.
nl_after_access_spec                     = 0        # number

# Whether to remove blank lines after '{'
eat_blanks_after_open_brace              = true    # false/true

# Whether to remove blank lines before '}'
eat_blanks_before_close_brace            = false    # false/true

#
# Code modifying options (non-whitespace)
#

# Add or remove braces on single-line 'do' statement
mod_full_brace_do                        = add   # ignore/add/remove/force

# Add or remove braces on single-line 'for' statement
mod_full_brace_for                       = add   # ignore/add/remove/force

# Add or remove braces on single-line function defintions. (Pawn)
mod_full_brace_function                  = add   # ignore/add/remove/force

# Add or remove braces on single-line 'if' statement
mod_full_brace_if                        = add   # ignore/add/remove/force

# Don't remove braces around statements that span N newlines
mod_full_brace_nl                        = 1        # number

# Add or remove braces on single-line 'while' statement
mod_full_brace_while                     = add   # ignore/add/remove/force

# Add or remove unnecessary paren on 'return' statement
mod_paren_on_return                      = remove   # ignore/add/remove/force

# Whether to change optional semicolons to real semicolons
mod_pawn_semicolon                       = false    # false/true

# Add parens on 'while' and 'if' statement around bools
mod_full_paren_if_bool                   = false    # false/true

# Whether to remove superfluous semicolons
mod_remove_extra_semicolon               = true    # false/true

# If a function body exceeds the specified number of newlines and doesn't have a comment after
# the close brace, a comment will be added.
mod_add_long_function_closebrace_comment = 1        # number

# If a switch body exceeds the specified number of newlines and doesn't have a comment after
# the close brace, a comment will be added.
mod_add_long_switch_closebrace_comment   = 10        # number

# If TRUE, will sort consecutive single-line 'import' statements [Java, D]
mod_sort_import                          = false    # false/true

# If TRUE, will sort consecutive single-line 'using' statements [C#]
mod_sort_using                           = false    # false/true

# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C]
# This is generally a bad idea, as it may break your code.
mod_sort_include                         = false    # false/true

#
# Comment modifications
#

# Try to wrap comments at cmt_witdth columns
cmt_width                                = 80        # number

# Whether to group c-comments that look like they are in a block
cmt_c_group                              = false    # false/true

# Whether to put an empty '/*' on the first line of the combined c-comment
cmt_c_nl_start                           = false    # false/true

# Whether to put a newline before the closing '*/' of the combined c-comment
cmt_c_nl_end                             = false    # false/true

# Whether to group cpp-comments that look like they are in a block
cmt_cpp_group                            = false    # false/true

# Whether to put an empty '/*' on the first line of the combined cpp-comment
cmt_cpp_nl_start                         = false    # false/true

# Whether to put a newline before the closing '*/' of the combined cpp-comment
cmt_cpp_nl_end                           = false    # false/true

# Whether to change cpp-comments into c-comments
cmt_cpp_to_c                             = true    # false/true

# Whether to put a star on subsequent comment lines
cmt_star_cont                            = true    # false/true

# The number of spaces to insert at the start of subsequent comment lines
cmt_sp_before_star_cont                  = 1        # number

# The number of spaces to insert after the star on subsequent comment lines
cmt_sp_after_star_cont                   = 0        # number

# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
# Will substitue $(filename) with the current file's name.
cmt_insert_file_header                   = ""         # string

# The filename that contains text to insert before a function implementation if the function isn't preceeded with a C/C++ comment.
# Will substitue $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff.
# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... }
cmt_insert_func_header                   = ""         # string

# The filename that contains text to insert before a class if the class isn't preceeded with a C/C++ comment.
# Will substitue $(class) with the class name.
cmt_insert_class_header                  = ""         # string

#
# Preprocessor options
#

# Control indent of preprocessors inside #if blocks at brace level 0
pp_indent                                = remove   # ignore/add/remove/force

# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false)
pp_indent_at_level                       = false    # false/true

# Add or remove space after # based on pp_level of #if blocks
pp_space                                 = ignore   # ignore/add/remove/force

# Sets the number of spaces added with pp_space
pp_space_count                           = 0        # number

# The indent for #region and #endregion in C# and '#pragma region' in C/C++
pp_indent_region                         = 0        # number

# Whether to indent the code between #region and #endregion
pp_region_indent_code                    = false    # false/true

# If pp_indent_at_level=true, sets the indent for #if, #else, and #endif when not at file-level
pp_indent_if                             = 0        # number

# Control whether to indent the code between #if, #else and #endif when not at file-level
pp_if_indent_code                        = false    # false/true

# Whether to indent '#define' at the brace level (true) or from column 1 (false)
pp_define_at_level                       = false    # false/true

# You can force a token to be a type with the 'type' option.
# Example:
# type myfoo1 myfoo2
#
# You can create custom macro-based indentation using macro-open,
# macro-else and macro-close.
# Example:
# macro-open  BEGIN_TEMPLATE_MESSAGE_MAP
# macro-open  BEGIN_MESSAGE_MAP
# macro-close END_MESSAGE_MAP

