# Uncrustify 0.52+svn

mod_case_brace = add

#
# General options
#

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

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

# The size of tabs in the output (only used if align_with_tabs=true)
output_tab_size                          = 3        # 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                           = 3        # 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 'extern "C"' body is indented
indent_extern                            = false    # false/true

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

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

# False=treat 'else\nif' as 'else if' for indenting purposes
# True=indent the 'if' one level
indent_else_if                           = false    # false/true

# Amount to indent variable declarations after a open brace. neg=relative, pos=absolute
indent_var_def_blk                       = 0        # number

# 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

# Same as indent_func_call_param, but for templates
indent_template_param                    = false    # false/true

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

# Indentation column for standalone 'const' function decl/proto qualifier
indent_func_const                        = 0        # number

# Indentation column for standalone 'throw' function decl/proto qualifier
indent_func_throw                        = 0        # number

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

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

# If set, will indent trailing single line ('//') comments relative
# to the code instead of trying to keep the same absolute column
indent_relative_single_line_comments     = false    # false/true

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

# Spaces to shift the 'case' line, without affecting any other lines
# Usually 0.
indent_case_shift                        = 0        # 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                        = 3        # 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

# Indent the code after an access specifier by one level.
# If set, this option forces 'indent_access_spec=0'
indent_access_spec_body                  = false    # false/true

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

# Align continued statements at the '='. Default=True
# If FALSE or the '=' is followed by a newline, the next line is indent one tab.
indent_align_assign                      = true     # 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 before assignment operator '=', '+=', etc. Overrides sp_assign.
sp_before_assign                         = ignore   # ignore/add/remove/force

# Add or remove space after assignment operator '=', '+=', etc. Overrides sp_assign.
sp_after_assign                          = ignore   # ignore/add/remove/force

# Add or remove space around assignment '=' in enum
sp_enum_assign                           = ignore   # ignore/add/remove/force

# Add or remove space before assignment '=' in enum. Overrides sp_enum_assign.
sp_enum_before_assign                    = ignore   # ignore/add/remove/force

# Add or remove space after assignment '=' in enum. Overrides sp_enum_assign.
sp_enum_after_assign                     = ignore   # 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                          = remove   # ignore/add/remove/force

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

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

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

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

# Add or remove space before pointer star '*' that isn't followed by a variable name
# If set to 'ignore', sp_before_ptr_star is used instead.
sp_before_unnamed_ptr_star               = ignore   # 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 after a pointer star '*', if followed by a func proto/def.
sp_after_ptr_star_func                   = ignore   # ignore/add/remove/force

# Add or remove space before a pointer star '*', if followed by a func proto/def.
sp_before_ptr_star_func                  = ignore   # ignore/add/remove/force

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

# Add or remove space before a reference sign '&' that isn't followed by a variable name
# If set to 'ignore', sp_before_byref is used instead.
sp_before_unnamed_byref                  = ignore   # ignore/add/remove/force

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

# Add or remove space after a reference sign '&', if followed by a func proto/def.
sp_after_byref_func                      = ignore   # ignore/add/remove/force

# Add or remove space before a reference sign '&', if followed by a func proto/def.
sp_before_byref_func                     = ignore   # ignore/add/remove/force

# Add or remove space between type and word
sp_after_type                            = force    # ignore/add/remove/force

# Add or remove space in 'template <' vs 'template<'.
# If set to ignore, sp_before_angle is used.
sp_template_angle                        = ignore   # ignore/add/remove/force

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

# Add or remove space inside '<' and '>'
sp_inside_angle                          = remove   # 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                           = ignore   # ignore/add/remove/force

# Add or remove space between '<>' and a word as in 'List<byte> m;'
sp_angle_word                            = ignore   # 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 before if-condition ')'. Overrides sp_inside_sparen.
sp_inside_sparen_close                   = ignore   # ignore/add/remove/force

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

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

# Add or remove space between 'invariant' and '(' in the D language.
sp_invariant_paren                       = ignore   # ignore/add/remove/force

# Add or remove space after the ')' in 'invariant (C) c' in the D language.
sp_after_invariant_paren                 = ignore   # ignore/add/remove/force

# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
sp_special_semi                          = ignore   # 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                       = ignore   # 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                  = ignore   # ignore/add/remove/force

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

# Add or remove space before '[]'
sp_before_squares                        = ignore   # 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 after class ':'
sp_after_class_colon                     = ignore   # ignore/add/remove/force

# Add or remove space before class ':'
sp_before_class_colon                    = ignore   # ignore/add/remove/force

# Add or remove space before case ':'
sp_before_case_colon                     = remove   # ignore/add/remove/force

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

# Add or remove space between the operator symbol and the open paren, as in 'operator ++('
sp_after_operator_sym                    = ignore   # ignore/add/remove/force

# Add or remove space after C/D cast, ie 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a'
sp_after_cast                            = remove   # ignore/add/remove/force

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

# Add or remove space between the type and open paren in a C++ cast, ie 'int(exp)' vs 'int (exp)'
sp_cpp_cast_paren                        = ignore   # 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                  = force    # ignore/add/remove/force

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

# Add or remove space inside '{}'
sp_inside_braces_empty                   = ignore   # 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                             = force    # 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                        = ignore   # 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                         = ignore   # ignore/add/remove/force

# Add or remove space between ')' and '{' of function
sp_fparen_brace                          = add      # 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 the user function name and '(' on function calls
# You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file.
sp_func_call_user_paren                  = ignore   # ignore/add/remove/force

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

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

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

# Add or remove space between 'defined' and '(' in '#if defined (FOO)'
sp_defined_paren                         = ignore   # ignore/add/remove/force

# Add or remove space between 'throw' and '(' in 'throw (something)'
sp_throw_paren                           = ignore   # ignore/add/remove/force

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

# Add or remove space between macro function ')' and value
sp_macro_func                            = ignore   # 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 '}' and the name of a typedef on the same line
sp_brace_typedef                         = force    # 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 before a backslash-newline at the end of a line
sp_before_nl_cont                        = add      # 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_after_oc_colon                        = ignore   # ignore/add/remove/force

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

# Add or remove space after the colon in message specs
# '[object setValue:1];' vs '[object setValue: 1];'
sp_after_send_oc_colon                   = ignore   # ignore/add/remove/force

# Add or remove space before the colon in message specs
# '[object setValue:1];' vs '[object setValue :1];'
sp_before_send_oc_colon                  = ignore   # 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                         = ignore   # ignore/add/remove/force

# Add or remove space around the ':' in 'b ? t : f'
sp_cond_colon                            = ignore   # ignore/add/remove/force

# Add or remove space around the '?' in 'b ? t : f'
sp_cond_question                         = ignore   # ignore/add/remove/force

# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
sp_case_label                            = remove   # ignore/add/remove/force

# Control the space around the D '..' operator.
sp_range                                 = ignore   # ignore/add/remove/force

# Control the space after the opening of a C++ comment '// A' vs '//A'
sp_cmt_cpp_start                         = ignore   # 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                        = true     # false/true

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

# Align parameters in single-line functions that have the same name.
# The function names must already be aligned with each other.
align_same_func_call_params              = false    # false/true

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

# How to align the star in variable definitions.
#  0=Part of the type     'void *   foo;'
#  1=Part of the variable 'void     *foo;'
#  2=Dangling             'void    *foo;'
align_var_def_star_style                 = 1        # 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                     = 16       # number

# The gap for aligning variable definitions
align_var_def_gap                        = 0        # number

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

# Whether to align any attribute after the variable name
align_var_def_attribute                  = 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                      = 12       # number

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

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

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

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

# The gap for aligning struct/union member definitions
align_var_struct_gap                     = 0        # number

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

# The minimum space between the type and the synonym of a typedef
align_typedef_gap                        = 3        # 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                 = 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_amp_style                  = 0        # 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

# If a trailing comment is more than this number of columns away from the text it follows,
# it will qualify for being aligned.
align_right_cmt_gap                      = 0        # number

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

# Minimum gap between the return type and the function name.
align_func_proto_gap                     = 0        # number

# Align function protos on the 'operator' keyword instead of what follows
align_on_operator                        = false    # false/true

# Whether to mix aligning prototype and variable declarations.
# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options.
align_mix_var_proto                      = false    # false/true

# Align single-line functions with function prototypes, uses align_func_proto_span
align_single_line_func                   = false    # false/true

# Aligning the open brace of single-line functions.
# Requires align_single_line_func=true, uses align_func_proto_span
align_single_line_brace                  = false    # false/true

# Gap for align_single_line_brace.
align_single_line_brace_gap              = 0        # number

# The span for aligning ObjC msg spec (0=don't align)
align_oc_msg_spec_span                   = 0        # 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                      = 4        # number

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

# Align lines that start with '<<' with previous '<<'. Default=true
align_left_shift                         = true     # false/true

#
# 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               = true     # false/true

# Don't split one-line braced statements inside a class xx { } body
nl_class_leave_one_liners                = true     # 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                          = add      # 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                           = add      # ignore/add/remove/force

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

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

# Add or remove newline between 'union' and '{'
nl_union_brace                           = force    # 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                          = ignore   # ignore/add/remove/force

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

# Add or remove newline between 'else' and 'if'
nl_else_if                               = ignore   # 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                          = force    # 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                           = remove   # ignore/add/remove/force

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

# Add a newline between ')' and '{' if the ')' is on a different line than the if/for/etc.
# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch, and nl_catch_brace.
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

# Add or remove newline between ')' and 'throw'
nl_before_throw                          = ignore   # ignore/add/remove/force

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

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

# Add or remove newline between 'template<>' and whatever follows.
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                        = ignore   # ignore/add/remove/force

# Add or remove newline between function scope and name in a definition
# Controls the newline after '::' in 'void A::f() { }'
nl_func_scope_name                       = ignore   # ignore/add/remove/force

# Add or remove newline between return type and function name in a prototype
nl_func_proto_type_name                  = ignore   # 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                       = ignore   # 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

# Add or remove a newline between the return keyword and return expression.
nl_return_expr                           = ignore   # ignore/add/remove/force

# 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                  = false    # 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                     = false    # false/true

# Whether to put a newline after a brace close.
# Does not apply if followed by a necessary ';'.
nl_after_brace_close                     = true     # false/true

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

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

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

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

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

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

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

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

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

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

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

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

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

# Whether to double-space before the close brace of a struct/union/enum
nl_ds_struct_enum_close_brace            = false    # 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 arithmetic operators in wrapped expressions
pos_arith                                = ignore   # ignore/lead/trail

# The position of assignment in wrapped expressions
pos_assign                               = ignore   # ignore/lead/trail

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

# The position of the comma in wrapped expressions
pos_comma                                = ignore   # 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                               = 0        # number

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

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

#
# Blank line options
#

# The maximum consecutive newlines
nl_max                                   = 4        # number

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

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

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

# The number of newlines after '}' of a single line function body
nl_after_func_body_one_liner             = 0        # 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                  = 2        # 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                      = 0        # 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                    = 0        # number

# Whether to force a newline after a mulit-line comment.
nl_after_multiline_comment               = false    # 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

# The number of newlines between a function def and the function comment.
# 0 = No change.
nl_comment_func_def                      = 1        # number

# The number of newlines after a try-catch-finally block that isn't followed by a brace close.
# 0 = No change.
nl_after_try_catch_finally               = 0        # number

# The number of newlines before and after a property, indexer or event decl.
# 0 = No change.
nl_around_cs_property                    = 0        # number

# The number of newlines between the get/set/add/remove handlers in C#.
# 0 = No change.
nl_between_get_set                       = 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            = true     # 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                  = ignore   # ignore/add/remove/force

# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
mod_full_brace_if                        = add      # ignore/add/remove/force

# Don't remove braces around statements that span N newlines
mod_full_brace_nl                        = 0        # 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                      = add      # 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                   = true     # 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 = 0        # 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   = 0        # 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

# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
mod_move_case_break                      = false    # false/true

# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
mod_remove_empty_return                  = true     # false/true

#
# Comment modifications
#

# Try to wrap comments at cmt_width columns
cmt_width                                = 0        # number

# If false, disable all multi-line comment changes, including cmt_width and leading chars.
# Default is true.
cmt_indent_multi                         = true     # false/true

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

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

# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
# the comment are the same length. Default=True
cmt_multi_check_last                     = true     # false/true

# 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 at the end of a file if the file doesn't end with a C/C++ comment.
# Will substitue $(filename) with the current file's name.
cmt_insert_file_footer                   = ""         # 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

# If a preprocessor is encountered when stepping backwards from a function name, then
# this option decides whether the comment should be inserted.
# Affects cmt_insert_func_header and cmt_insert_class_header.
cmt_insert_before_preproc                = false    # false/true

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

# If pp_indent_at_level=false, specifies the number of columns to indent per level. Default=1.
pp_indent_count                          = 1        # number

# 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
#
# You can assign any keyword to any type with the set option.
# set func_call_user _ N_
