# Uncrustify-0.71.0_f

#
# General options
#

# Added specific file extensions.
file_ext C .c.in
file_ext C-Header .h.in

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

# The original size of tabs in the input.
#
# Default: 8
input_tab_size                  = 8        # unsigned number

# The size of tabs in the output (only used if align_with_tabs=true).
#
# Default: 8
output_tab_size                 = 8        # unsigned number

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

# Alternate string escape char (usually only used for Pawn).
# Only works right before the quote char.
string_escape_char2             = 0        # unsigned number

# Replace tab characters found in string literals with the escape sequence \t
# instead.
string_replace_tab_chars        = true     # true/false

# Allow interpreting '>=' and '>>=' as part of a template in code like
# 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
# Improvements to template detection may make this option obsolete.
tok_split_gte                   = false    # true/false

# Disable formatting of NL_CONT ('\\n') ended lines (e.g. multiline macros)
disable_processing_nl_cont      = false    # true/false

# Specify the marker used in comments to disable processing of part of the
# file.
# The comment should be used alone in one line.
#
# Default:  *INDENT-OFF*
disable_processing_cmt          = " *INDENT-OFF*"      # string

# Specify the marker used in comments to (re)enable processing in a file.
# The comment should be used alone in one line.
#
# Default:  *INDENT-ON*
enable_processing_cmt           = " *INDENT-ON*"     # string

# Enable parsing of digraphs.
enable_digraphs                 = false    # true/false

# Add or remove the UTF-8 BOM (recommend 'remove').
utf8_bom                        = ignore   # ignore/add/remove/force

# If the file contains bytes with values between 128 and 255, but is not
# UTF-8, then output as UTF-8.
utf8_byte                       = false    # true/false

# Force the output encoding to UTF-8.
utf8_force                      = true     # true/false

# Add or remove space between 'do' and '{'.
sp_do_brace_open                = force     # ignore/add/remove/force

# Add or remove space between '}' and 'while'.
sp_brace_close_while            = force     # ignore/add/remove/force

# Add or remove space between 'while' and '('.
sp_while_paren_open             = force     # ignore/add/remove/force

#
# Spacing options
#

# Add or remove space around non-assignment symbolic operators ('+', '/', '%',
# '<<', and so forth).
sp_arith                        = force     # ignore/add/remove/force

# Add or remove space around arithmetic operators '+' and '-'.
#
# Overrides sp_arith.
sp_arith_additive               = 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 '=' in C++11 lambda capture specifications.
#
# Overrides sp_assign.
sp_cpp_lambda_assign            = force    # ignore/add/remove/force

# Add or remove space after the capture specification of a C++11 lambda when
# an argument list is present, as in '[] <here> (int x){ ... }'.
sp_cpp_lambda_square_paren      = ignore   # ignore/add/remove/force

# Add or remove space after the capture specification of a C++11 lambda with
# no argument list is present, as in '[] <here> { ... }'.
sp_cpp_lambda_square_brace      = ignore   # ignore/add/remove/force

# Add or remove space after the argument list of a C++11 lambda, as in
# '[](int x) <here> { ... }'.
sp_cpp_lambda_paren_brace       = ignore   # ignore/add/remove/force

# Add or remove space between a lambda body and its call operator of an
# immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
sp_cpp_lambda_fparen            = ignore   # ignore/add/remove/force

# Add or remove space around assignment operator '=' in a prototype.
#
# If set to ignore, use sp_assign.
sp_assign_default               = ignore   # ignore/add/remove/force

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

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

# Add or remove space in 'NS_ENUM ('.
sp_enum_paren                   = force    # ignore/add/remove/force

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

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

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

# Add or remove space around assignment ':' in enum.
sp_enum_colon                   = ignore    # ignore/add/remove/force

# Add or remove space around preprocessor '##' concatenation operator.
#
# Default: add
sp_pp_concat                    = ignore    # ignore/add/remove/force

# Add or remove space after preprocessor '#' stringify operator.
# Also affects the '#@' charizing operator.
sp_pp_stringify                 = ignore    # ignore/add/remove/force

# Add or remove space before preprocessor '#' stringify operator
# as in '#define x(y) L#y'.
sp_before_pp_stringify          = 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 parentheses, i.e. '((' vs. ') )'.
sp_paren_paren                  = remove    # ignore/add/remove/force

# Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
sp_cparen_oparen                = remove    # ignore/add/remove/force

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

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

# Add or remove space between nested braces, i.e. '{{' vs '{ {'.
sp_brace_brace                  = ignore    # ignore/add/remove/force

# Add or remove space before pointer star '*'.
sp_before_ptr_star              = ignore    # 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.
#
# Overrides sp_type_func.
sp_after_ptr_star               = ignore   # ignore/add/remove/force

# Add or remove space after pointer caret '^', if followed by a word.
#sp_after_ptr_block_caret        = ignore   # ignore/add/remove/force

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

# Add or remove space after a pointer star '*', if followed by a function
# prototype or function definition.
#
# Overrides sp_after_ptr_star and sp_type_func.
sp_after_ptr_star_func          = ignore   # ignore/add/remove/force

# Add or remove space after a pointer star '*', if followed by an open
# parenthesis, as in 'void* (*)().
sp_ptr_star_paren               = remove   # ignore/add/remove/force

# Add or remove space before a pointer star '*', if followed by a function
# prototype or function definition.
sp_before_ptr_star_func         = ignore   # ignore/add/remove/force

# Add or remove space before a reference sign '&'.
sp_before_byref                 = ignore    # 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.
#
# Overrides sp_type_func.
sp_after_byref                  = ignore   # ignore/add/remove/force

# Add or remove space after a reference sign '&', if followed by a function
# prototype or function definition.
#
# Overrides sp_after_byref and sp_type_func.
sp_after_byref_func             = ignore   # ignore/add/remove/force

# Add or remove space before a reference sign '&', if followed by a function
# prototype or function definition.
sp_before_byref_func            = ignore    # ignore/add/remove/force

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

# Add or remove space between 'decltype(...)' and word.
sp_after_decltype               = ignore   # ignore/add/remove/force

# (D) Add or remove space before the parenthesis in the D constructs
# 'template Foo(' and 'class Foo('.
sp_before_template_paren        = ignore   # ignore/add/remove/force

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

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

# Add or remove space inside '<>'.
sp_inside_angle_empty           = ignore   # ignore/add/remove/force

# Add or remove space between '>' and ':'.
sp_angle_colon                  = ignore   # ignore/add/remove/force

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

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

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

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

# Add or remove space between '>' and '>' in '>>' (template stuff).
#
# Default: add
sp_angle_shift                  = ignore   # ignore/add/remove/force

# (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
# that sp_angle_shift cannot remove the space without this option.
sp_permit_cpp11_shift           = false    # true/false

# Add or remove space before '(' of control statements ('if', 'for', 'switch',
# 'while', etc.).
sp_before_sparen                = force    # ignore/add/remove/force

# Add or remove space inside '(' and ')' of control statements.
sp_inside_sparen                = remove   # ignore/add/remove/force

# Add or remove space after '(' of control statements.
#
# Overrides sp_inside_sparen.
sp_inside_sparen_open           = ignore   # ignore/add/remove/force

# Add or remove space before ')' of control statements.
#
# Overrides sp_inside_sparen.
sp_inside_sparen_close          = ignore   # ignore/add/remove/force

# Add or remove space after ')' of control statements.
sp_after_sparen                 = force    # ignore/add/remove/force

# Add or remove space between ')' and '{' of of control statements.
sp_sparen_brace                 = force    # ignore/add/remove/force

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

# (D) Add or remove space after the ')' in 'invariant (C) c'.
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 ';'.
#
# Default: remove
sp_before_semi                  = remove   # ignore/add/remove/force

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

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

# Add or remove space after ';', except when followed by a comment.
#
# Default: add
sp_after_semi                   = force    # ignore/add/remove/force

# Add or remove space after ';' in non-empty 'for' statements.
#
# Default: force
sp_after_semi_for               = force    # ignore/add/remove/force

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

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

# Add or remove space before '[' for a variable definition.
#
# Default: remove
sp_before_vardef_square         = ignore   # ignore/add/remove/force

# Add or remove space before '[' for asm block.
sp_before_square_asm_block      = ignore   # ignore/add/remove/force

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

# Add or remove space before C++17 structured bindings.
sp_cpp_before_struct_binding    = ignore   # ignore/add/remove/force

# Add or remove space inside a non-empty '[' and ']'.
sp_inside_square                = ignore   # ignore/add/remove/force

# (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
# ']'. If set to ignore, sp_inside_square is used.
sp_inside_square_oc_array       = ignore   # ignore/add/remove/force

# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
sp_after_comma                  = add      # ignore/add/remove/force

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

# (C#) Add or remove space between ',' and ']' in multidimensional array type
# like 'int[,,]'.
sp_after_mdatype_commas         = ignore   # ignore/add/remove/force

# (C#) Add or remove space between '[' and ',' in multidimensional array type
# like 'int[,,]'.
sp_before_mdatype_commas        = ignore   # ignore/add/remove/force

# (C#) Add or remove space between ',' in multidimensional array type
# like 'int[,,]'.
sp_between_mdatype_commas       = ignore   # ignore/add/remove/force

# Add or remove space between an open parenthesis and comma,
# i.e. '(,' vs. '( ,'.
#
# Default: force
sp_paren_comma                  = force    # ignore/add/remove/force

# Add or remove space before the variadic '...' when preceded by a
# non-punctuator.
sp_before_ellipsis              = force    # ignore/add/remove/force

# Add or remove space between a type and '...'.
sp_type_ellipsis                = force    # ignore/add/remove/force

# (D) Add or remove space between a type and '?'.
#sp_type_question                = ignore   # ignore/add/remove/force

# Add or remove space between ')' and '...'.
sp_paren_ellipsis               = force    # ignore/add/remove/force

# Add or remove space between ')' and a qualifier such as 'const'.
sp_paren_qualifier              = force    # ignore/add/remove/force

# Add or remove space between ')' and 'noexcept'.
sp_paren_noexcept               = ignore   # 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 after class constructor ':'.
sp_after_constr_colon           = ignore   # ignore/add/remove/force

# Add or remove space before class constructor ':'.
sp_before_constr_colon          = ignore   # ignore/add/remove/force

# Add or remove space before case ':'.
#
# Default: remove
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 parenthesis, as
# in 'operator ++('.
sp_after_operator_sym           = ignore   # ignore/add/remove/force

# Overrides sp_after_operator_sym when the operator has no arguments, as in
# 'operator *()'.
sp_after_operator_sym_empty     = ignore   # ignore/add/remove/force

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

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

# Add or remove space between the type and open parenthesis in a C++ cast,
# i.e. 'int(exp)' vs. 'int (exp)'.
sp_cpp_cast_paren               = ignore   # ignore/add/remove/force

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

# Add or remove space between 'sizeof' and '...'.
sp_sizeof_ellipsis              = remove   # ignore/add/remove/force

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

# Add or remove space between 'decltype' and '('.
sp_decltype_paren               = ignore   # ignore/add/remove/force

# (Pawn) Add or remove space after the tag keyword.
#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

# (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
#sp_inside_braces_oc_dict        = ignore   # ignore/add/remove/force

# Add or remove space after open brace in an unnamed temporary
# direct-list-initialization.
sp_after_type_brace_init_lst_open = ignore   # ignore/add/remove/force

# Add or remove space before close brace in an unnamed temporary
# direct-list-initialization.
sp_before_type_brace_init_lst_close = ignore   # ignore/add/remove/force

# Add or remove space inside an unnamed temporary direct-list-initialization.
sp_inside_type_brace_init_lst   = ignore   # ignore/add/remove/force

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

# Add or remove space inside '{}'.
sp_inside_braces_empty          = remove   # ignore/add/remove/force

# Add or remove space around trailing return operator '->'.
sp_trailing_return              = 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                    = remove   # ignore/add/remove/force

# Add or remove space between type and open brace of an unnamed temporary
# direct-list-initialization.
sp_type_brace_init_lst          = ignore   # 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 declaration
# without parameters.
sp_func_proto_paren_empty       = remove   # ignore/add/remove/force

# Add or remove space between function name and '(' with a typedef specifier.
sp_func_type_paren              = remove   # ignore/add/remove/force

# Add or remove space between alias name and '(' of a non-pointer function type typedef.
sp_func_def_paren               = ignore   # ignore/add/remove/force

# Add or remove space between function name and '()' on function definition
# without parameters.
sp_func_def_paren_empty         = remove   # ignore/add/remove/force

# Add or remove space inside empty function '()'.
# Overrides sp_after_angle unless use_sp_after_angle_always is set to true.
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 inside the first parentheses in a function type, as in
# 'void (*x)(...)'.
sp_inside_tparen                = remove   # ignore/add/remove/force

# Add or remove space between the ')' and '(' in a function type, as in
# 'void (*x)(...)'.
sp_after_tparen_close           = 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                 = ignore    # ignore/add/remove/force

# Add or remove space between ')' and '{' of s function call in object
# initialization.
#
# Overrides sp_fparen_brace.
sp_fparen_brace_initializer     = ignore   # ignore/add/remove/force

# (Java) Add or remove space between ')' and '{{' of double brace initializer.
sp_fparen_dbrace                = ignore   # ignore/add/remove/force

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

# Add or remove space between function name and '()' on function calls without
# parameters. If set to ignore (the default), sp_func_call_paren is used.
sp_func_call_paren_empty        = ignore   # 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 in the config file,
# like:
#   set func_call_user tr _ i18n
sp_func_call_user_paren         = ignore   # ignore/add/remove/force

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

# Add or remove space between nested parentheses with user functions,
# i.e. '((' vs. '( ('.
sp_func_call_user_paren_paren   = ignore   # ignore/add/remove/force

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

# Add or remove space between a constructor without parameters or destructor
# and '()'.
sp_func_class_paren_empty       = 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 'return' and '{'.
sp_return_brace                 = force    # ignore/add/remove/force

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

# Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
sp_defined_paren                = force    # 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 'throw' and anything other than '(' as in
# '@throw [...];'.
sp_after_throw                  = ignore   # ignore/add/remove/force

# Add or remove space between 'catch' and '(' in 'catch (something) { }'.
# If set to ignore, sp_before_sparen is used.
sp_catch_paren                  = ignore   # ignore/add/remove/force

# (OC) Add or remove space between '@catch' and '('
# in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
sp_oc_catch_paren               = ignore   # ignore/add/remove/force

# (OC) Add or remove space before Objective-C protocol list
# as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
sp_before_oc_proto_list         = ignore   # ignore/add/remove/force

# (OC) Add or remove space between class name and '('
# in '@interface className(categoryName)<ProtocolName>:BaseClass'
sp_oc_classname_paren           = ignore   # ignore/add/remove/force

# (D) Add or remove space between 'version' and '('
# in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
sp_version_paren                = ignore   # ignore/add/remove/force

# (D) Add or remove space between 'scope' and '('
# in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
sp_scope_paren                  = ignore   # ignore/add/remove/force

# Add or remove space between 'super' and '(' in 'super (something)'.
#
# Default: remove
sp_super_paren                  = ignore   # ignore/add/remove/force

# Add or remove space between 'this' and '(' in 'this (something)'.
#
# Default: remove
sp_this_paren                   = ignore   # ignore/add/remove/force

# Add or remove space between a macro name and its definition.
sp_macro                        = force    # ignore/add/remove/force

# Add or remove space between a macro function ')' and its definition.
sp_macro_func                   = force    # ignore/add/remove/force

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

# Add or remove space between '}' and 'else' if on the same line.
sp_brace_else                   = force    # 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 before the '{' of a 'catch' statement, if the '{' and
# 'catch' are on the same line, as in 'catch (decl) <here> {'.
sp_catch_brace                  = ignore   # ignore/add/remove/force

# (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
# and '@catch' are on the same line, as in '@catch (decl) <here> {'.
# If set to ignore, sp_catch_brace is used.
sp_oc_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

# (OC) Add or remove space between '}' and '@catch' if on the same line.
# If set to ignore, sp_brace_catch is used.
sp_oc_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 between a variable and '{' for C++ uniform
# initialization.
sp_word_brace_init_lst          = ignore   # ignore/add/remove/force

# Add or remove space between a variable and '{' for a namespace.
#
# Default: add
sp_word_brace_ns                = ignore   # ignore/add/remove/force

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

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

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

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

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

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

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

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

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

# Add or remove space between '++' and '--' the word to which it is being
# applied, as in '(--x)' or 'y++;'.
#
# Default: remove
sp_incdec                       = remove   # ignore/add/remove/force

# Add or remove space before a backslash-newline at the end of a line.
#
# Default: add
sp_before_nl_cont               = ignore   # ignore/add/remove/force

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

# (OC) Add or remove space after the colon in message specs,
# i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
sp_after_oc_colon               = ignore   # ignore/add/remove/force

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

# (OC) Add or remove space after the colon in immutable dictionary expression
# 'NSDictionary *test = @{@"foo" :@"bar"};'.
sp_after_oc_dict_colon          = ignore   # ignore/add/remove/force

# (OC) Add or remove space before the colon in immutable dictionary expression
# 'NSDictionary *test = @{@"foo" :@"bar"};'.
sp_before_oc_dict_colon         = ignore   # ignore/add/remove/force

# (OC) Add or remove space after the colon in message specs,
# i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
sp_after_send_oc_colon          = ignore   # ignore/add/remove/force

# (OC) Add or remove space before the colon in message specs,
# i.e. '[object setValue:1];' vs. '[object setValue :1];'.
sp_before_send_oc_colon         = ignore   # ignore/add/remove/force

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

# (OC) Add or remove space after the first (type) in message specs,
# i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
sp_after_oc_return_type         = ignore   # ignore/add/remove/force

# (OC) Add or remove space between '@selector' and '(',
# i.e. '@selector(msgName)' vs. '@selector (msgName)'.
# Also applies to '@protocol()' constructs.
sp_after_oc_at_sel              = ignore   # ignore/add/remove/force

# (OC) Add or remove space between '@selector(x)' and the following word,
# i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
sp_after_oc_at_sel_parens       = ignore   # ignore/add/remove/force

# (OC) Add or remove space inside '@selector' parentheses,
# i.e. '@selector(foo)' vs. '@selector( foo )'.
# Also applies to '@protocol()' constructs.
sp_inside_oc_at_sel_parens      = ignore   # ignore/add/remove/force

# (OC) Add or remove space before a block pointer caret,
# i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
sp_before_oc_block_caret        = ignore   # ignore/add/remove/force

# (OC) Add or remove space after a block pointer caret,
# i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
sp_after_oc_block_caret         = ignore   # ignore/add/remove/force

# (OC) Add or remove space between the receiver and selector in a message,
# as in '[receiver selector ...]'.
sp_after_oc_msg_receiver        = ignore   # ignore/add/remove/force

# (OC) Add or remove space after '@property'.
sp_after_oc_property            = ignore   # ignore/add/remove/force

# (OC) Add or remove space between '@synchronized' and the open parenthesis,
# i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
sp_after_oc_synchronized        = ignore   # ignore/add/remove/force

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

# Add or remove space before the ':' in 'b ? t : f'.
#
# Overrides sp_cond_colon.
sp_cond_colon_before            = ignore   # ignore/add/remove/force

# Add or remove space after the ':' in 'b ? t : f'.
#
# Overrides sp_cond_colon.
sp_cond_colon_after             = ignore   # ignore/add/remove/force

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

# Add or remove space before the '?' in 'b ? t : f'.
#
# Overrides sp_cond_question.
sp_cond_question_before         = ignore    # ignore/add/remove/force

# Add or remove space after the '?' in 'b ? t : f'.
#
# Overrides sp_cond_question.
sp_cond_question_after          = ignore    # ignore/add/remove/force

# In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
# and ':'.
#
# Overrides all other sp_cond_* options.
sp_cond_ternary_short           = remove    # ignore/add/remove/force

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

# (D) Add or remove space around the D '..' operator.
sp_range                        = ignore   # ignore/add/remove/force

# Add or remove space after ':' in a Java/C++11 range-based 'for',
# as in 'for (Type var : expr)'.
sp_after_for_colon              = ignore   # ignore/add/remove/force

# Add or remove space before ':' in a Java/C++11 range-based 'for',
# as in 'for (Type var : expr)'.
sp_before_for_colon             = ignore   # ignore/add/remove/force

# (D) Add or remove space between 'extern' and '(' as in 'extern (C)'.
sp_extern_paren                 = ignore   # ignore/add/remove/force

# Add or remove space after the opening of a C++ comment,
# i.e. '// A' vs. '//A'.
sp_cmt_cpp_start                = ignore    # ignore/add/remove/force

# If true, space is added with sp_cmt_cpp_start will be added after doxygen
# sequences like '///', '///<', '//!' and '//!<'.
sp_cmt_cpp_doxygen              = true     # true/false

# If true, space is added with sp_cmt_cpp_start will be added after Qt
# translator or meta-data comments like '//:', '//=', and '//~'.
sp_cmt_cpp_qttr                 = true     # true/false

# Add or remove space between #else or #endif and a trailing comment.
sp_endif_cmt                    = ignore   # ignore/add/remove/force

# Add or remove space after 'new', 'delete' and 'delete[]'.
sp_after_new                    = ignore   # ignore/add/remove/force

# Add or remove space between 'new' and '(' in 'new()'.
sp_between_new_paren            = ignore   # ignore/add/remove/force

# Add or remove space between ')' and type in 'new(foo) BAR'.
sp_after_newop_paren            = ignore   # ignore/add/remove/force

# Add or remove space inside parenthesis of the new operator
# as in 'new(foo) BAR'.
sp_inside_newop_paren           = ignore   # ignore/add/remove/force

# Add or remove space after the open parenthesis of the new operator,
# as in 'new(foo) BAR'.
#
# Overrides sp_inside_newop_paren.
sp_inside_newop_paren_open      = ignore   # ignore/add/remove/force

# Add or remove space before the close parenthesis of the new operator,
# as in 'new(foo) BAR'.
#
# Overrides sp_inside_newop_paren.
sp_inside_newop_paren_close     = ignore   # ignore/add/remove/force

# Add or remove space before a trailing or embedded comment.
sp_before_tr_emb_cmt            = ignore   # ignore/add/remove/force

# Number of spaces before a trailing or embedded comment.
sp_num_before_tr_emb_cmt        = 0        # unsigned number

# (Java) Add or remove space between an annotation and the open parenthesis.
sp_annotation_paren             = ignore   # ignore/add/remove/force

# If true, vbrace tokens are dropped to the previous token and skipped.
sp_skip_vbrace_tokens           = false    # true/false

# Add or remove space after 'noexcept'.
sp_after_noexcept               = ignore   # ignore/add/remove/force

# Add or remove space after '_'.
sp_vala_after_translation       = ignore   # ignore/add/remove/force

# If true, a <TAB> is inserted after #define.
force_tab_after_define          = false    # true/false

#
# Indenting options
#

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

# The continuation indent. If non-zero, this overrides the indent of '(', '['
# and '=' continuation indents. Negative values are OK; negative value is
# absolute and not increased for each '(' or '[' level.
#
# For FreeBSD, this is set to 4.
indent_continue                 = 8        # number

# The continuation indent, only for class header line(s). If non-zero, this
# overrides the indent of 'class' continuation indents.
indent_continue_class_head      = 0        # unsigned number

# Whether to indent empty lines (i.e. lines which contain only spaces before
# the newline character).
indent_single_newlines          = false    # true/false

# The continuation indent for func_*_param if they are true. If non-zero, this
# overrides the indent.
indent_param                    = 0        # unsigned number

# How to use tabs when indenting code.
#
# 0: Spaces only
# 1: Indent with tabs to brace level, align with spaces (default)
# 2: Indent and align with tabs, using spaces when not on a tabstop
#
# Default: 1
indent_with_tabs                = 0        # unsigned number

# Whether to indent comments that are not at a brace level with tabs on a
# tabstop. Requires indent_with_tabs=2. If false, will use spaces.
indent_cmt_with_tabs            = false    # true/false

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

# The number of spaces to indent multi-line XML strings.
# Requires indent_align_string=true.
indent_xml_string               = 2        # unsigned number

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

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

# Whether to disable indenting function braces if indent_braces=true.
indent_braces_no_func           = false    # true/false

# Whether to disable indenting class braces if indent_braces=true.
indent_braces_no_class          = false    # true/false

# Whether to disable indenting struct braces if indent_braces=true.
indent_braces_no_struct         = false    # true/false

# Whether to indent based on the size of the brace parent,
# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
indent_brace_parent             = false    # true/false

# Whether to indent based on the open parenthesis instead of the open brace
# in '({\n'.
indent_paren_open_brace         = false    # true/false

# (C#) Whether to indent the brace of a C# delegate by another level.
indent_cs_delegate_brace        = false    # true/false

# (C#) Whether to indent a C# delegate (to handle delegates with no brace) by
# another level.
indent_cs_delegate_body         = false    # true/false

# Whether to indent the body of a 'namespace'.
indent_namespace                = false    # true/false

# Whether to indent only the first namespace, and not any nested namespaces.
# Requires indent_namespace=true.
indent_namespace_single_indent  = false    # true/false

# The number of spaces to indent a namespace block.
# If set to zero, use the value indent_columns
indent_namespace_level          = 0        # unsigned number

# If the body of the namespace is longer than this number, it won't be
# indented. Requires indent_namespace=true. 0 means no limit.
indent_namespace_limit          = 0        # unsigned number

# Whether the 'extern "C"' body is indented.
indent_extern                   = false    # true/false

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

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

# Whether to indent based on a class colon instead of the stuff after the
# colon. Requires indent_class_colon=true.
indent_class_on_colon           = false    # true/false

# Whether to indent the stuff after a leading class initializer colon.
indent_constr_colon             = false    # true/false

# Virtual indent from the ':' for member initializers.
#
# Default: 2
indent_ctor_init_leading        = 0        # unsigned number

# Additional indent for constructor initializer list.
# Negative values decrease indent down to the first column.
indent_ctor_init                = 0        # number

# Whether to indent 'if' following 'else' as a new block under the 'else'.
# If false, 'else\nif' is treated as 'else if' for indenting purposes.
indent_else_if                  = false    # true/false

# Amount to indent variable declarations after a open brace.
#
#  <0: Relative
# >=0: Absolute
indent_var_def_blk              = 0        # number

# Whether to indent continued variable declarations instead of aligning.
indent_var_def_cont             = false    # true/false

# Whether to indent continued shift expressions ('<<' and '>>') instead of
# aligning. Set align_left_shift=false when enabling this.
indent_shift                    = false    # true/false

# Whether to force indentation of function definitions to start in column 1.
indent_func_def_force_col1      = false    # true/false

# Whether to indent continued function call parameters one indent level,
# rather than aligning parameters under the open parenthesis.
indent_func_call_param          = false    # true/false

# Whether to indent continued function definition parameters one indent level,
# rather than aligning parameters under the open parenthesis.
indent_func_def_param           = false    # true/false

# for function definitions, only if indent_func_def_param is false
# Allows to align params when appropriate and indent them when not
# behave as if it was true if paren position is more than this value
# if paren position is more than the option value
indent_func_def_param_paren_pos_threshold = 0        # unsigned number

# Whether to indent continued function call prototype one indent level,
# rather than aligning parameters under the open parenthesis.
indent_func_proto_param         = false    # true/false

# Whether to indent continued function call declaration one indent level,
# rather than aligning parameters under the open parenthesis.
indent_func_class_param         = false    # true/false

# Whether to indent continued class variable constructors one indent level,
# rather than aligning parameters under the open parenthesis.
indent_func_ctor_var_param      = false    # true/false

# Whether to indent continued template parameter list one indent level,
# rather than aligning parameters under the open parenthesis.
indent_template_param           = false    # true/false

# Double the indent for indent_func_xxx_param options.
# Use both values of the options indent_columns and indent_param.
indent_func_param_double        = false    # true/false

# Indentation column for standalone 'const' qualifier on a function
# prototype.
indent_func_const               = 0        # unsigned number

# Indentation column for standalone 'throw' qualifier on a function
# prototype.
indent_func_throw               = 0        # unsigned number

# How to indent within a macro followed by a brace on the same line
# This allows reducing the indent in macros that have (for example)
# `do { ... } while (0)` blocks bracketing them.
#
# true:  add an indent for the brace on the same line as the macro
# false: do not add an indent for the brace on the same line as the macro
#
# Default: true
indent_macro_brace              = false    # true/false

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

# Whether lines broken at '.' or '->' should be indented by a single indent.
# The indent_member option will not be effective if this is set to true.
indent_member_single            = false    # true/false

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

# When opening a paren for a control statement (if, for, while, etc), increase
# the indent level by this value. Negative values decrease the indent level.
indent_sparen_extra             = 0        # number

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

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

# indent 'break' with 'case' from 'switch'.
indent_switch_break_with_case   = false    # true/false

# Whether to indent preprocessor statements inside of switch statements.
#
# Default: true
indent_switch_pp                = false    # true/false

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

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

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

# Whether to indent multi string literal in first column.
indent_col1_multi_string_literal = false    # true/false

# How to indent goto labels.
#
#  >0: Absolute column where 1 is the leftmost column
# <=0: Subtract from brace indent
#
# Default: 1
indent_label                    = 1        # number

# How to indent access specifiers that are followed by a
# colon.
#
#  >0: Absolute column where 1 is the leftmost column
# <=0: Subtract from brace indent
#
# Default: 1
indent_access_spec              = 1        # number

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

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

# How to indent a close parenthesis after a newline.
#
# 0: Indent to body level (default)
# 1: Align under the open parenthesis
# 2: Indent to the brace level
indent_paren_close              = 1        # unsigned number

# Whether to indent the open parenthesis of a function definition,
# if the parenthesis is on its own line.
indent_paren_after_func_def     = false    # true/false

# Whether to indent the open parenthesis of a function declaration,
# if the parenthesis is on its own line.
indent_paren_after_func_decl    = false    # true/false

# Whether to indent the open parenthesis of a function call,
# if the parenthesis is on its own line.
indent_paren_after_func_call    = false    # true/false

# Whether to indent a comma when inside a parenthesis.
# If true, aligns under the open parenthesis.
indent_comma_paren              = true     # true/false

# Whether to indent a Boolean operator when inside a parenthesis.
# If true, aligns under the open parenthesis.
indent_bool_paren               = false    # true/false

# Whether to indent a semicolon when inside a for parenthesis.
# If true, aligns under the open for parenthesis.
indent_semicolon_for_paren      = false    # true/false

# Whether to align the first expression to following ones
# if indent_bool_paren=true.
indent_first_bool_expr          = false    # true/false

# Whether to align the first expression to following ones
# if indent_semicolon_for_paren=true.
indent_first_for_expr           = false    # true/false

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

# (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.
indent_preserve_sql             = false    # true/false

# Whether to align continued statements at the '='. If false or if the '=' is
# followed by a newline, the next line is indent one tab.
#
# Default: true
indent_align_assign             = true     # true/false

# If true, the indentation of the chunks after a '=' sequence will be set at
# LHS token indentation column before '='.
indent_off_after_assign         = false    # true/false

# Whether to align continued statements at the '('. If false or the '(' is
# followed by a newline, the next line indent is one tab.
#
# Default: true
indent_align_paren              = true     # true/false

# (OC) Whether to indent Objective-C code inside message selectors.
indent_oc_inside_msg_sel        = false    # true/false

# (OC) Whether to indent Objective-C blocks at brace level instead of usual
# rules.
indent_oc_block                 = false    # true/false

# (OC) Indent for Objective-C blocks in a message relative to the parameter
# name.
#
# =0: Use indent_oc_block rules
# >0: Use specified number of spaces to indent
indent_oc_block_msg             = 0        # unsigned number

# (OC) Minimum indent for subsequent parameters
indent_oc_msg_colon             = 0        # unsigned number

# (OC) Whether to prioritize aligning with initial colon (and stripping spaces
# from lines, if necessary).
#
# Default: true
indent_oc_msg_prioritize_first_colon = true     # true/false

# (OC) Whether to indent blocks the way that Xcode does by default
# (from the keyword if the parameter is on its own line; otherwise, from the
# previous indentation level). Requires indent_oc_block_msg=true.
indent_oc_block_msg_xcode_style = false    # true/false

# (OC) Whether to indent blocks from where the brace is, relative to a
# message keyword. Requires indent_oc_block_msg=true.
indent_oc_block_msg_from_keyword = false    # true/false

# (OC) Whether to indent blocks from where the brace is, relative to a message
# colon. Requires indent_oc_block_msg=true.
indent_oc_block_msg_from_colon  = false    # true/false

# (OC) Whether to indent blocks from where the block caret is.
# Requires indent_oc_block_msg=true.
indent_oc_block_msg_from_caret  = false    # true/false

# (OC) Whether to indent blocks from where the brace caret is.
# Requires indent_oc_block_msg=true.
indent_oc_block_msg_from_brace  = false    # true/false

# When indenting after virtual brace open and newline add further spaces to
# reach this minimum indent.
indent_min_vbrace_open          = 0        # unsigned number

# Whether to add further spaces after regular indent to reach next tabstop
# when identing after virtual brace open and newline.
indent_vbrace_open_on_tabstop   = false    # true/false

# How to indent after a brace followed by another token (not a newline).
# true:  indent all contained lines to match the token
# false: indent all contained lines to match the brace
#
# Default: true
indent_token_after_brace        = false    # true/false

# Whether to indent the body of a C++11 lambda.
indent_cpp_lambda_body          = false    # true/false

# How to indent compound literals that are being returned.
# true: add both the indent from return & the compound literal open brace (ie:
#       2 indent levels)
# false: only indent 1 level, don't add the indent for the open brace, only add
#        the indent for the return.
#
# Default: true
indent_compound_literal_return  = true     # true/false

# (C#) Whether to indent a 'using' block if no braces are used.
#
# Default: true
indent_using_block              = true     # true/false

# How to indent the continuation of ternary operator.
#
# 0: Off (default)
# 1: When the `if_false` is a continuation, indent it under `if_false`
# 2: When the `:` is a continuation, indent it under `?`
indent_ternary_operator         = 2        # unsigned number

# Whether to indent the statments inside ternary operator.
indent_inside_ternary_operator  = false    # true/false

# If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.
indent_off_after_return         = false    # true/false

# If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.
indent_off_after_return_new     = false    # true/false

# If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.
indent_single_after_return      = false    # true/false

# Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they
# have their own indentation).
indent_ignore_asm_block         = true     # true/false

#
# Newline adding and removing options
#

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

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

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

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

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

# (C#) Don't split one-line property get or set functions.
nl_cs_property_leave_one_liners = true     # true/false

# Don't split one-line function definitions, as in 'int foo() { return 0; }'.
# might modify nl_func_type_name
nl_func_leave_one_liners        = true     # true/false

# Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.
nl_cpp_lambda_leave_one_liners  = true     # true/false

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

# Don't split one-line while statements, as in 'while(...) b++;'.
nl_while_leave_one_liners       = true     # true/false

# Don't split one-line for statements, as in 'for(...) b++;'.
nl_for_leave_one_liners         = true     # true/false

# (OC) Don't split one-line Objective-C messages.
nl_oc_msg_leave_one_liner       = true     # true/false

# (OC) Add or remove newline between method declaration and '{'.
nl_oc_mdef_brace                = ignore   # ignore/add/remove/force

# (OC) Add or remove newline between Objective-C block signature and '{'.
nl_oc_block_brace               = ignore   # ignore/add/remove/force

# (OC) Add or remove blank line before '@interface' statement.
nl_oc_before_interface          = ignore   # ignore/add/remove/force

# (OC) Add or remove blank line before '@implementation' statement.
nl_oc_before_implementation     = ignore   # ignore/add/remove/force

# (OC) Add or remove blank line before '@end' statement.
nl_oc_before_end                = ignore   # ignore/add/remove/force

# (OC) Add or remove newline between '@interface' and '{'.
nl_oc_interface_brace           = ignore   # ignore/add/remove/force

# (OC) Add or remove newline between '@implementation' and '{'.
nl_oc_implementation_brace      = ignore   # ignore/add/remove/force

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

# The minimum 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        # unsigned number

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

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

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

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

# Add or remove newline between '[]' and '{'.
nl_tsquare_brace                = ignore   # ignore/add/remove/force

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

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

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

# Add or remove newline between 'enum' and 'class'.
nl_enum_class                   = ignore   # ignore/add/remove/force

# Add or remove newline between 'enum class' and the identifier.
nl_enum_class_identifier        = ignore   # ignore/add/remove/force

# Add or remove newline between 'enum class' type and ':'.
nl_enum_identifier_colon        = ignore   # ignore/add/remove/force

# Add or remove newline between 'enum class identifier :' and type.
nl_enum_colon_type              = ignore   # ignore/add/remove/force

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

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

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

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

# Add or remove newline between 'else' and 'if'.
nl_else_if                      = ignore   # ignore/add/remove/force

# Add or remove newline before '{' opening brace
nl_before_opening_brace_func_class_def = ignore   # ignore/add/remove/force

# Add or remove newline before 'if'/'else if' closing parenthesis.
nl_before_if_closing_paren      = 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                 = ignore   # ignore/add/remove/force

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

# Add or remove newline before the '{' of a 'catch' statement, as in
# 'catch (decl) <here> {'.
nl_catch_brace                  = ignore   # ignore/add/remove/force

# (OC) Add or remove newline before the '{' of a '@catch' statement, as in
# '@catch (decl) <here> {'. If set to ignore, nl_catch_brace is used.
nl_oc_catch_brace               = ignore   # ignore/add/remove/force

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

# (OC) Add or remove newline between '}' and '@catch'. If set to ignore,
# nl_brace_catch is used.
nl_oc_brace_catch               = ignore   # ignore/add/remove/force

# Add or remove newline between '}' and ']'.
nl_brace_square                 = ignore   # ignore/add/remove/force

# Add or remove newline between '}' and ')' in a function invocation.
nl_brace_fparen                 = ignore   # ignore/add/remove/force

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

# (D) Add or remove newline between 'scope (x)' and '{'.
nl_scope_brace                  = ignore   # ignore/add/remove/force

# (D) Add or remove newline between 'unittest' and '{'.
nl_unittest_brace               = ignore   # ignore/add/remove/force

# (D) Add or remove newline between 'version (x)' and '{'.
nl_version_brace                = ignore   # ignore/add/remove/force

# (C#) Add or remove newline between 'using' and '{'.
nl_using_brace                  = ignore   # ignore/add/remove/force

# Add or remove newline between two open or close braces. Due to general
# newline/brace handling, REMOVE may not work.
nl_brace_brace                  = ignore   # ignore/add/remove/force

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

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

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

# Add or remove newline between 'synchronized' and '{'.
nl_synchronized_brace           = ignore   # 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    # true/false

# Add a newline after '(' if an if/for/while/switch condition spans multiple
# lines
nl_multi_line_sparen_open       = ignore   # ignore/add/remove/force

# Add a newline before ')' if an if/for/while/switch condition spans multiple
# lines. Overrides nl_before_if_closing_paren if both are specified.
nl_multi_line_sparen_close      = ignore   # ignore/add/remove/force

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

# Whether to add a newline before 'case', and a blank line before a 'case'
# statement that follows a ';' or '}'.
nl_before_case                  = false    # true/false

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

# Add or remove newline between a case ':' and '{'.
#
# Overrides nl_after_case.
nl_case_colon_brace             = ignore   # ignore/add/remove/force

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

# Add or remove newline between 'namespace' and '{'.
nl_namespace_brace              = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<...>' of a template class.
nl_template_class               = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<...>' of a template class declaration.
#
# Overrides nl_template_class.
nl_template_class_decl          = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<>' of a specialized class declaration.
#
# Overrides nl_template_class_decl.
nl_template_class_decl_special  = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<...>' of a template class definition.
#
# Overrides nl_template_class.
nl_template_class_def           = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<>' of a specialized class definition.
#
# Overrides nl_template_class_def.
nl_template_class_def_special   = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<...>' of a template function.
nl_template_func                = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<...>' of a template function
# declaration.
#
# Overrides nl_template_func.
nl_template_func_decl           = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<>' of a specialized function
# declaration.
#
# Overrides nl_template_func_decl.
nl_template_func_decl_special   = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<...>' of a template function
# definition.
#
# Overrides nl_template_func.
nl_template_func_def            = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<>' of a specialized function
# definition.
#
# Overrides nl_template_func_def.
nl_template_func_def_special    = ignore   # ignore/add/remove/force

# Add or remove newline after 'template<...>' of a template variable.
nl_template_var                 = ignore   # ignore/add/remove/force

# Add or remove newline between 'template<...>' and 'using' of a templated
# type alias.
nl_template_using               = ignore   # ignore/add/remove/force

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

# Add or remove newline before or after (depending on pos_class_comma,
# may not be IGNORE) each',' in the base class list.
nl_class_init_args              = ignore   # ignore/add/remove/force

# Add or remove newline after each ',' in the constructor member
# initialization. Related to nl_constr_colon, pos_constr_colon and
# pos_constr_comma.
nl_constr_init_args             = ignore   # ignore/add/remove/force

# Add or remove newline before first element, after comma, and after last
# element, in 'enum'.
nl_enum_own_lines               = ignore    # ignore/add/remove/force

# Add or remove newline between return type and function name in a function
# definition.
# might be modified by nl_func_leave_one_liners
nl_func_type_name               = ignore    # ignore/add/remove/force

# Add or remove newline between return type and function name inside a class
# definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name
# is used instead.
nl_func_type_name_class         = ignore   # ignore/add/remove/force

# Add or remove newline between class specification and '::'
# in 'void A::f() { }'. Only appears in separate member implementation (does
# not appear with in-line implementation).
nl_func_class_scope             = ignore   # ignore/add/remove/force

# Add or remove newline between function scope and name, as in
# 'void A :: <here> 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 '(' in the
# declaration.
nl_func_paren                   = ignore   # ignore/add/remove/force

# Overrides nl_func_paren for functions with no parameters.
nl_func_paren_empty             = ignore   # ignore/add/remove/force

# Add or remove newline between a function name and the opening '(' in the
# definition.
nl_func_def_paren               = ignore   # ignore/add/remove/force

# Overrides nl_func_def_paren for functions with no parameters.
nl_func_def_paren_empty         = ignore   # ignore/add/remove/force

# Add or remove newline between a function name and the opening '(' in the
# call.
nl_func_call_paren              = ignore   # ignore/add/remove/force

# Overrides nl_func_call_paren for functions with no parameters.
nl_func_call_paren_empty        = ignore   # 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 '(' in a function definition.
nl_func_def_start               = ignore   # ignore/add/remove/force

# Overrides nl_func_decl_start when there is only one parameter.
nl_func_decl_start_single       = ignore   # ignore/add/remove/force

# Overrides nl_func_def_start when there is only one parameter.
nl_func_def_start_single        = ignore   # ignore/add/remove/force

# Whether to add a newline after '(' in a function declaration if '(' and ')'
# are in different lines. If false, nl_func_decl_start is used instead.
nl_func_decl_start_multi_line   = false    # true/false

# Whether to add a newline after '(' in a function definition if '(' and ')'
# are in different lines. If false, nl_func_def_start is used instead.
nl_func_def_start_multi_line    = false    # true/false

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

# Add or remove newline after each ',' in a function definition.
nl_func_def_args                = ignore   # ignore/add/remove/force

# Add or remove newline after each ',' in a function call.
nl_func_call_args               = ignore   # ignore/add/remove/force

# Whether to add a newline after each ',' in a function declaration if '('
# and ')' are in different lines. If false, nl_func_decl_args is used instead.
nl_func_decl_args_multi_line    = false    # true/false

# Whether to add a newline after each ',' in a function definition if '('
# and ')' are in different lines. If false, nl_func_def_args is used instead.
nl_func_def_args_multi_line     = false    # true/false

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

# Add or remove newline before the ')' in a function definition.
nl_func_def_end                 = ignore   # ignore/add/remove/force

# Overrides nl_func_decl_end when there is only one parameter.
nl_func_decl_end_single         = ignore   # ignore/add/remove/force

# Overrides nl_func_def_end when there is only one parameter.
nl_func_def_end_single          = ignore   # ignore/add/remove/force

# Whether to add a newline before ')' in a function declaration if '(' and ')'
# are in different lines. If false, nl_func_decl_end is used instead.
nl_func_decl_end_multi_line     = false    # true/false

# Whether to add a newline before ')' in a function definition if '(' and ')'
# are in different lines. If false, nl_func_def_end is used instead.
nl_func_def_end_multi_line      = false    # true/false

# Add or remove newline between '()' in a function declaration.
nl_func_decl_empty              = ignore   # ignore/add/remove/force

# Add or remove newline between '()' in a function definition.
nl_func_def_empty               = ignore   # ignore/add/remove/force

# Add or remove newline between '()' in a function call.
nl_func_call_empty              = ignore   # ignore/add/remove/force

# Whether to add a newline after '(' in a function call,
# has preference over nl_func_call_start_multi_line.
nl_func_call_start              = ignore   # ignore/add/remove/force

# Whether to add a newline before ')' in a function call.
nl_func_call_end                = ignore   # ignore/add/remove/force

# Whether to add a newline after '(' in a function call if '(' and ')' are in
# different lines.
nl_func_call_start_multi_line   = false    # true/false

# Whether to add a newline after each ',' in a function call if '(' and ')'
# are in different lines.
nl_func_call_args_multi_line    = false    # true/false

# Whether to add a newline before ')' in a function call if '(' and ')' are in
# different lines.
nl_func_call_end_multi_line     = false    # true/false

# Whether to respect nl_func_call_XXX option incase of closure args.
nl_func_call_args_multi_line_ignore_closures = false    # true/false

# Whether to add a newline after '<' of a template parameter list.
nl_template_start               = false    # true/false

# Whether to add a newline after each ',' in a template parameter list.
nl_template_args                = false    # true/false

# Whether to add a newline before '>' of a template parameter list.
nl_template_end                 = false    # true/false

# (OC) Whether to put each Objective-C message parameter on a separate line.
# See nl_oc_msg_leave_one_liner.
nl_oc_msg_args                  = false    # true/false

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

# Add or remove newline between function signature and '{',
# if signature ends with ')'. Overrides nl_fdef_brace.
nl_fdef_brace_cond              = ignore   # ignore/add/remove/force

# Add or remove newline between C++11 lambda signature and '{'.
nl_cpp_ldef_brace               = ignore   # ignore/add/remove/force

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

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

# (Java) Add or remove newline between the ')' and '{{' of the double brace
# initializer.
nl_paren_dbrace_open            = ignore   # ignore/add/remove/force

# Whether to add a newline after the type in an unnamed temporary
# direct-list-initialization.
nl_type_brace_init_lst          = ignore   # ignore/add/remove/force

# Whether to add a newline after the open brace in an unnamed temporary
# direct-list-initialization.
nl_type_brace_init_lst_open     = ignore   # ignore/add/remove/force

# Whether to add a newline before the close brace in an unnamed temporary
# direct-list-initialization.
nl_type_brace_init_lst_close    = ignore   # ignore/add/remove/force

# Whether to add a newline after '{'. This also adds a newline before the
# matching '}'.
nl_after_brace_open             = false    # true/false

# Whether to add a newline between the open brace and a trailing single-line
# comment. Requires nl_after_brace_open=true.
nl_after_brace_open_cmt         = false    # true/false

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

# Whether to add a newline after a virtual brace open with an empty body.
# These occur in un-braced if/while/do/for statement bodies.
nl_after_vbrace_open_empty      = false    # true/false

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

# Whether to add a newline after a virtual brace close,
# as in 'if (foo) a++; <here> return;'.
nl_after_vbrace_close           = false    # true/false

# Add or remove newline between the close brace and identifier,
# as in 'struct { int a; } <here> b;'. Affects enumerations, unions and
# structures. If set to ignore, uses nl_after_brace_close.
nl_brace_struct_var             = ignore   # ignore/add/remove/force

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

# Whether to alter newlines between consecutive parenthesis closes. The number
# of closing parentheses in a line will depend on respective open parenthesis
# lines.
nl_squeeze_paren_close          = false    # true/false

# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and
# '#endif'. Does not affect top-level #ifdefs.
nl_squeeze_ifdef                = false    # true/false

# Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.
nl_squeeze_ifdef_top_level      = false    # true/false

# Add or remove blank line before 'if'.
nl_before_if                    = ignore   # ignore/add/remove/force

# Add or remove blank line after 'if' statement. Add/Force work only if the
# next token is not a closing brace.
nl_after_if                     = ignore   # ignore/add/remove/force

# Add or remove blank line before 'for'.
nl_before_for                   = ignore   # ignore/add/remove/force

# Add or remove blank line after 'for' statement.
nl_after_for                    = ignore   # ignore/add/remove/force

# Add or remove blank line before 'while'.
nl_before_while                 = ignore   # ignore/add/remove/force

# Add or remove blank line after 'while' statement.
nl_after_while                  = ignore   # ignore/add/remove/force

# Add or remove blank line before 'switch'.
nl_before_switch                = ignore   # ignore/add/remove/force

# Add or remove blank line after 'switch' statement.
nl_after_switch                 = ignore   # ignore/add/remove/force

# Add or remove blank line before 'synchronized'.
nl_before_synchronized          = ignore   # ignore/add/remove/force

# Add or remove blank line after 'synchronized' statement.
nl_after_synchronized           = ignore   # ignore/add/remove/force

# Add or remove blank line before 'do'.
nl_before_do                    = ignore   # ignore/add/remove/force

# Add or remove blank line after 'do/while' statement.
nl_after_do                     = ignore   # ignore/add/remove/force

# Whether to put a blank line before 'return' statements, unless after an open
# brace.
nl_before_return                = false    # true/false

# Whether to put a blank line after 'return' statements, unless followed by a
# close brace.
nl_after_return                 = false    # true/false

# Whether to put a blank line before a member '.' or '->' operators.
nl_before_member                = ignore   # ignore/add/remove/force

# (Java) Whether to put a blank line after a member '.' or '->' operators.
nl_after_member                 = ignore   # ignore/add/remove/force

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

# Whether to force a newline before '}' of a 'struct'/'union'/'enum'.
# (Lower priority than eat_blanks_before_close_brace.)
nl_ds_struct_enum_close_brace   = false    # true/false

# Add or remove newline before or after (depending on pos_class_colon) a class
# colon, as in 'class Foo <here> : <or here> public Bar'.
nl_class_colon                  = ignore   # ignore/add/remove/force

# Add or remove newline around a class constructor colon. The exact position
# depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.
nl_constr_colon                 = ignore   # ignore/add/remove/force

# Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'
# into a single line. If true, prevents other brace newline rules from turning
# such code into four lines.
nl_namespace_two_to_one_liner   = false    # true/false

# Whether to remove a newline in simple unbraced if statements, turning them
# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'.
nl_create_if_one_liner          = false    # true/false

# Whether to remove a newline in simple unbraced for statements, turning them
# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'.
nl_create_for_one_liner         = false    # true/false

# Whether to remove a newline in simple unbraced while statements, turning
# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'.
nl_create_while_one_liner       = false    # true/false

# Whether to collapse a function definition whose body (not counting braces)
# is only one line so that the entire definition (prototype, braces, body) is
# a single line.
nl_create_func_def_one_liner    = false    # true/false

# Whether to collapse a function definition whose body (not counting braces)
# is only one line so that the entire definition (prototype, braces, body) is
# a single line.
nl_create_list_one_liner        = false    # true/false

# Whether to split one-line simple unbraced if statements into two lines by
# adding a newline, as in 'if(b) <here> i++;'.
nl_split_if_one_liner           = false    # true/false

# Whether to split one-line simple unbraced for statements into two lines by
# adding a newline, as in 'for (...) <here> stmt;'.
nl_split_for_one_liner          = false    # true/false

# Whether to split one-line simple unbraced while statements into two lines by
# adding a newline, as in 'while (expr) <here> stmt;'.
nl_split_while_one_liner        = false    # true/false

#
# Blank line options
#

# The maximum number of consecutive newlines (3 = 2 blank lines).
nl_max                          = 2        # unsigned number

# The maximum number of consecutive newlines in a function.
nl_max_blank_in_func            = 2        # unsigned number

# The number of newlines before a function prototype.
nl_before_func_body_proto       = 0        # unsigned number

# The number of newlines before a multi-line function definition.
nl_before_func_body_def         = 0        # unsigned number

# The number of newlines before a class constructor/destructor prototype.
nl_before_func_class_proto      = 0        # unsigned number

# The number of newlines before a class constructor/destructor definition.
nl_before_func_class_def        = 0        # unsigned number

# The number of newlines after a function prototype.
nl_after_func_proto             = 0        # unsigned number

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

# The number of newlines after a class constructor/destructor prototype.
nl_after_func_class_proto       = 0        # unsigned number

# The number of newlines after a class constructor/destructor prototype,
# if not followed by another constructor/destructor prototype.
nl_after_func_class_proto_group = 0        # unsigned number

# Whether one-line method definitions inside a class body should be treated
# as if they were prototypes for the purposes of adding newlines.
#
# Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def
# and nl_before_func_class_def for one-liners.
nl_class_leave_one_liner_groups = false    # true/false

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

# The number of newlines after '}' of a multi-line function body in a class
# declaration. Also affects class constructors/destructors.
#
# Overrides nl_after_func_body.
nl_after_func_body_class        = 2        # unsigned number

# The number of newlines after '}' of a single line function body. Also
# affects class constructors/destructors.
#
# Overrides nl_after_func_body and nl_after_func_body_class.
nl_after_func_body_one_liner    = 2        # unsigned number

# The number of blank lines after a block of variable definitions at the top
# of a function body.
#
# 0: No change (default).
nl_func_var_def_blk             = 0        # unsigned number

# The number of newlines before a block of typedefs. If nl_after_access_spec
# is non-zero, that option takes precedence.
#
# 0: No change (default).
nl_typedef_blk_start            = 0        # unsigned number

# The number of newlines after a block of typedefs.
#
# 0: No change (default).
nl_typedef_blk_end              = 0        # unsigned number

# The maximum number of consecutive newlines within a block of typedefs.
#
# 0: No change (default).
nl_typedef_blk_in               = 0        # unsigned number

# The number of newlines before a block of variable definitions not at the top
# of a function body. If nl_after_access_spec is non-zero, that option takes
# precedence.
#
# 0: No change (default).
nl_var_def_blk_start            = 0        # unsigned number

# The number of newlines after a block of variable definitions not at the top
# of a function body.
#
# 0: No change (default).
nl_var_def_blk_end              = 0        # unsigned number

# The maximum number of consecutive newlines within a block of variable
# definitions.
#
# 0: No change (default).
nl_var_def_blk_in               = 0        # unsigned 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         = 0        # unsigned 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        # unsigned 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        # unsigned number

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

# Whether to force a newline after a label's colon.
nl_after_label_colon            = false    # true/false

# The number of newlines after '}' or ';' of a struct/enum/union definition.
nl_after_struct                 = 1        # unsigned number

# The number of newlines before a class definition.
nl_before_class                 = 0        # unsigned number

# The number of newlines after '}' or ';' of a class definition.
nl_after_class                  = 0        # unsigned number

# The number of newlines before a namespace.
nl_before_namespace             = 0        # unsigned number

# The number of newlines after '{' of a namespace. This also adds newlines
# before the matching '}'.
#
# 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if
#     applicable, otherwise no change.
#
# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.
nl_inside_namespace             = 0        # unsigned number

# The number of newlines after '}' of a namespace.
nl_after_namespace              = 0        # unsigned number

# The number of newlines before an access specifier label. This also includes
# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
# if after a brace open.
#
# 0: No change (default).
nl_before_access_spec           = 0        # unsigned number

# The number of newlines after an access specifier label. This also includes
# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
# if after a brace open.
#
# 0: No change (default).
#
# Overrides nl_typedef_blk_start and nl_var_def_blk_start.
nl_after_access_spec            = 0        # unsigned number

# The number of newlines between a function definition and the function
# comment, as in '// comment\n <here> void foo() {...}'.
#
# 0: No change (default).
nl_comment_func_def             = 0        # unsigned number

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

# (C#) The number of newlines before and after a property, indexer or event
# declaration.
#
# 0: No change (default).
nl_around_cs_property           = 0        # unsigned number

# (C#) The number of newlines between the get/set/add/remove handlers.
#
# 0: No change (default).
nl_between_get_set              = 0        # unsigned number

# (C#) Add or remove newline between property and the '{'.
nl_property_brace               = ignore   # ignore/add/remove/force

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

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

# How aggressively to remove extra newlines not in preprocessor.
#
# 0: No change (default)
# 1: Remove most newlines not handled by other config
# 2: Remove all newlines and reformat completely by config
nl_remove_extra_newlines        = 0        # unsigned number

# (Java) Add or remove newline after an annotation statement. Only affects
# annotations that are after a newline.
nl_after_annotation             = ignore   # ignore/add/remove/force

# (Java) Add or remove newline between two annotations.
nl_between_annotation           = ignore   # ignore/add/remove/force

# The number of newlines before a whole-file #ifdef.
#
# 0: No change (default).
nl_before_whole_file_ifdef      = 0        # unsigned number

# The number of newlines after a whole-file #ifdef.
#
# 0: No change (default).
nl_after_whole_file_ifdef       = 0        # unsigned number

# The number of newlines before a whole-file #endif.
#
# 0: No change (default).
nl_before_whole_file_endif      = 0        # unsigned number

# The number of newlines after a whole-file #endif.
#
# 0: No change (default).
nl_after_whole_file_endif       = 0        # unsigned number

#
# Positioning options
#

# The position of arithmetic operators in wrapped expressions.
pos_arith                       = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of assignment in wrapped expressions. Do not affect '='
# followed by '{'.
pos_assign                      = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of Boolean operators in wrapped expressions.
pos_bool                        = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of comparison operators in wrapped expressions.
pos_compare                     = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of conditional operators, as in the '?' and ':' of
# 'expr ? stmt : stmt', in wrapped expressions.
pos_conditional                 = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of the comma in wrapped expressions.
pos_comma                       = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of the comma in enum entries.
pos_enum_comma                  = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of the comma in the base class list if there is more than one
# line. Affects nl_class_init_args.
pos_class_comma                 = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of the comma in the constructor initialization list.
# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
pos_constr_comma                = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of trailing/leading class colon, between class and base class
# list. Affects nl_class_colon.
pos_class_colon                 = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

# The position of colons between constructor and member initialization.
# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
pos_constr_colon                = ignore   # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force

#
# Line splitting options
#

# Try to limit code width to N columns.
code_width                      = 256      # unsigned number

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

# Whether to fully split long function prototypes/calls at commas.
# The option ls_code_width has priority over the option ls_func_split_full.
ls_func_split_full              = false    # true/false

# Whether to split lines as close to code_width as possible and ignore some
# groupings.
# The option ls_code_width has priority over the option ls_func_split_full.
ls_code_width                   = false    # true/false

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

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

# Whether to use tabs for aligning.
align_with_tabs                 = false    # true/false

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

# Whether to right-align numbers.
align_number_right              = true     # true/false

# Whether to keep whitespace not required for alignment.
align_keep_extra_space          = false    # true/false

# Whether to align variable definitions in prototypes and functions.
align_func_params               = true     # true/false

# The span for aligning parameter definitions in function on parameter name.
#
# 0: Don't align (default).
align_func_params_span          = 1        # unsigned number

# The threshold for aligning function parameter definitions.
# Use a negative number for absolute thresholds.
#
# 0: No limit (default).
align_func_params_thresh        = 0        # number

# The gap for aligning function parameter definitions.
align_func_params_gap           = 1        # unsigned number

# The span for aligning constructor value.
#
# 0: Don't align (default).
align_constr_value_span         = 0        # unsigned number

# The threshold for aligning constructor value.
# Use a negative number for absolute thresholds.
#
# 0: No limit (default).
align_constr_value_thresh       = 0        # number

# The gap for aligning constructor value.
align_constr_value_gap          = 0        # unsigned number

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

# The span for aligning function-call parameters for single line functions.
#
# 0: Don't align (default).
align_same_func_call_params_span = 1        # unsigned number

# The threshold for aligning function-call parameters for single line
# functions.
# Use a negative number for absolute thresholds.
#
# 0: No limit (default).
align_same_func_call_params_thresh = 0        # number

# The span for aligning variable definitions.
#
# 0: Don't align (default).
align_var_def_span              = 0        # unsigned number

# How to consider (or treat) the '*' in the alignment of variable definitions.
#
# 0: Part of the type     'void *   foo;' (default)
# 1: Part of the variable 'void     *foo;'
# 2: Dangling             'void    *foo;'
# Dangling: the '*' will not be taken into account when aligning.
align_var_def_star_style        = 1        # unsigned number

# How to consider (or treat) the '&' in the alignment of variable definitions.
#
# 0: Part of the type     'long &   foo;' (default)
# 1: Part of the variable 'long     &foo;'
# 2: Dangling             'long    &foo;'
# Dangling: the '&' will not be taken into account when aligning.
align_var_def_amp_style         = 1        # unsigned number

# The threshold for aligning variable definitions.
# Use a negative number for absolute thresholds.
#
# 0: No limit (default).
align_var_def_thresh            = 0        # number

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

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

# The gap for aligning the colon in struct bit fields.
align_var_def_colon_gap         = 0        # unsigned number

# Whether to align any attribute after the variable name.
align_var_def_attribute         = false    # true/false

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

# The span for aligning on '=' in assignments.
#
# 0: Don't align (default).
align_assign_span               = 0        # unsigned number

# The span for aligning on '=' in function prototype modifier.
#
# 0: Don't align (default).
align_assign_func_proto_span    = 0        # unsigned number

# The threshold for aligning on '=' in assignments.
# Use a negative number for absolute thresholds.
#
# 0: No limit (default).
align_assign_thresh             = 0        # number

# How to apply align_assign_span to function declaration "assignments", i.e.
# 'virtual void foo() = 0' or '~foo() = {default|delete}'.
#
# 0: Align with other assignments (default)
# 1: Align with each other, ignoring regular assignments
# 2: Don't align
align_assign_decl_func          = 0        # unsigned number

# The span for aligning on '=' in enums.
#
# 0: Don't align (default).
align_enum_equ_span             = 0        # unsigned number

# The threshold for aligning on '=' in enums.
# Use a negative number for absolute thresholds.
#
# 0: no limit (default).
align_enum_equ_thresh           = 0        # number

# The span for aligning class member definitions.
#
# 0: Don't align (default).
align_var_class_span            = 0        # unsigned number

# The threshold for aligning class member definitions.
# Use a negative number for absolute thresholds.
#
# 0: No limit (default).
align_var_class_thresh          = 0        # number

# The gap for aligning class member definitions.
align_var_class_gap             = 0        # unsigned number

# The span for aligning struct/union member definitions.
#
# 0: Don't align (default).
align_var_struct_span           = 0        # unsigned number

# The threshold for aligning struct/union member definitions.
# Use a negative number for absolute thresholds.
#
# 0: No limit (default).
align_var_struct_thresh         = 0        # number

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

# The span for aligning struct initializer values.
#
# 0: Don't align (default).
align_struct_init_span          = 0        # unsigned number

# The span for aligning single-line typedefs.
#
# 0: Don't align (default).
align_typedef_span              = 0        # unsigned number

# The minimum space between the type and the synonym of a typedef.
align_typedef_gap               = 1        # unsigned number

# How to align typedef'd functions with other typedefs.
#
# 0: Don't mix them at all (default)
# 1: Align the open parenthesis with the types
# 2: Align the function type name with the other type names
align_typedef_func              = 0        # unsigned number

# How to consider (or treat) the '*' in the alignment of typedefs.
#
# 0: Part of the typedef type, 'typedef int * pint;' (default)
# 1: Part of type name:        'typedef int   *pint;'
# 2: Dangling:                 'typedef int  *pint;'
# Dangling: the '*' will not be taken into account when aligning.
align_typedef_star_style        = 1        # unsigned number

# How to consider (or treat) the '&' in the alignment of typedefs.
#
# 0: Part of the typedef type, 'typedef int & intref;' (default)
# 1: Part of type name:        'typedef int   &intref;'
# 2: Dangling:                 'typedef int  &intref;'
# Dangling: the '&' will not be taken into account when aligning.
align_typedef_amp_style         = 1        # unsigned number

# The span for aligning comments that end lines.
#
# 0: Don't align (default).
align_right_cmt_span            = 0        # unsigned number

# Minimum number of columns between preceding text and a trailing comment in
# order for the comment to qualify for being aligned. Must be non-zero to have
# an effect.
align_right_cmt_gap             = 0        # unsigned number

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

# Whether to only align trailing comments that are at the same brace level.
align_right_cmt_same_level      = false    # true/false

# Minimum column at which to align trailing comments. Comments which are
# aligned beyond this column, but which can be aligned in a lesser column,
# may be "pulled in".
#
# 0: Ignore (default).
align_right_cmt_at_col          = 0        # unsigned number

# The span for aligning function prototypes.
#
# 0: Don't align (default).
align_func_proto_span           = 0        # unsigned number

# The threshold for aligning function prototypes.
# Use a negative number for absolute thresholds.
#
# 0: No limit (default).
align_func_proto_thresh         = 0        # number

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

# Whether to align function prototypes on the 'operator' keyword instead of
# what follows.
align_on_operator               = false    # true/false

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

# Whether to align single-line functions with function prototypes.
# Uses align_func_proto_span.
align_single_line_func          = true     # true/false

# Whether to align the open brace of single-line functions.
# Requires align_single_line_func=true. Uses align_func_proto_span.
align_single_line_brace         = true     # true/false

# Gap for align_single_line_brace.
align_single_line_brace_gap     = 1        # unsigned number

# (OC) The span for aligning Objective-C message specifications.
#
# 0: Don't align (default).
align_oc_msg_spec_span          = 0        # unsigned 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                   = false    # true/false

# Whether to align macro functions and variables together.
align_pp_define_together        = false    # true/false

# The span for aligning on '#define' bodies.
#
# =0: Don't align (default)
# >0: Number of lines (including comments) between blocks
align_pp_define_span            = 0        # unsigned number

# The minimum space between label and value of a preprocessor define.
align_pp_define_gap             = 1        # unsigned number

# Whether to align lines that start with '<<' with previous '<<'.
#
# Default: true
align_left_shift                = false    # true/false

# Whether to align text after 'asm volatile ()' colons.
align_asm_colon                 = false    # true/false

# (OC) Span for aligning parameters in an Objective-C message call
# on the ':'.
#
# 0: Don't align.
align_oc_msg_colon_span         = 0        # unsigned number

# (OC) Whether to always align with the first parameter, even if it is too
# short.
align_oc_msg_colon_first        = false    # true/false

# (OC) Whether to align parameters in an Objective-C '+' or '-' declaration
# on the ':'.
align_oc_decl_colon             = false    # true/false

# (OC) Whether to not align parameters in an Objectve-C message call if first
# colon is not on next line of the message call (the same way Xcode does
# aligment)
align_oc_msg_colon_xcode_like   = false    # true/false

#
# Comment modification options
#

# Try to wrap comments at N columns.
cmt_width                       = 256      # unsigned number

# How to reflow comments.
#
# 0: No reflowing (apart from the line wrapping due to cmt_width) (default)
# 1: No touching at all
# 2: Full reflow
cmt_reflow_mode                 = 1        # unsigned number

# Whether to convert all tabs to spaces in comments. If false, tabs in
# comments are left alone, unless used for indenting.
cmt_convert_tab_to_spaces       = false    # true/false

# Whether to apply changes to multi-line comments, including cmt_width,
# keyword substitution and leading chars.
#
# Default: true
cmt_indent_multi                = false    # true/false

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

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

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

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

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

# Whether to put an empty '/*' on the first line of the combined cpp-comment
# when converting to a c-comment.
#
# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
cmt_cpp_nl_start                = false    # true/false

# Whether to add a newline before the closing '*/' of the combined cpp-comment
# when converting to a c-comment.
#
# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
cmt_cpp_nl_end                  = false    # true/false

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

# The number of spaces to insert at the start of subsequent comment lines.
cmt_sp_before_star_cont         = 0        # unsigned number

# The number of spaces to insert after the star on subsequent comment lines.
cmt_sp_after_star_cont          = 3        # unsigned 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            = false    # true/false

# For multi-line comments with a '*' lead, remove leading spaces if the first
# and last lines of the comment are the same length AND if the length is
# bigger as the first_len minimum.
#
# Default: 4
cmt_multi_first_len_minimum     = 4        # unsigned number

# Path to a file that contains text to insert at the beginning of a file if
# the file doesn't start with a C/C++ comment. If the inserted text contains
# '$(filename)', that will be replaced with the current file's name.
cmt_insert_file_header          = ""         # string

# Path to a file that contains text to insert at the end of a file if the
# file doesn't end with a C/C++ comment. If the inserted text contains
# '$(filename)', that will be replaced with the current file's name.
cmt_insert_file_footer          = ""         # string

# Path to a file that contains text to insert before a function definition if
# the function isn't preceded by a C/C++ comment. If the inserted text
# contains '$(function)', '$(javaparam)' or '$(fclass)', these will be
# replaced with, respectively, the name of the function, the javadoc '@param'
# and '@return' stuff, or the name of the class to which the member function
# belongs.
cmt_insert_func_header          = ""         # string

# Path to a file that contains text to insert before a class if the class
# isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',
# that will be replaced with the class name.
cmt_insert_class_header         = ""         # string

# Path to a file that contains text to insert before an Objective-C message
# specification, if the method isn't preceded by a C/C++ comment. If the
# inserted text contains '$(message)' or '$(javaparam)', these will be
# replaced with, respectively, the name of the function, or the javadoc
# '@param' and '@return' stuff.
cmt_insert_oc_msg_header        = ""         # string

# Whether a comment should be inserted if a preprocessor is encountered when
# stepping backwards from a function name.
#
# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and
# cmt_insert_class_header.
cmt_insert_before_preproc       = false    # true/false

# Whether a comment should be inserted if a function is declared inline to a
# class definition.
#
# Applies to cmt_insert_func_header.
#
# Default: true
cmt_insert_before_inlines       = false    # true/false

# Whether a comment should be inserted if the function is a class constructor
# or destructor.
#
# Applies to cmt_insert_func_header.
cmt_insert_before_ctor_dtor     = false    # true/false

#
# Code modifying options (non-whitespace)
#

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

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

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

# Add or remove braces on a single-line 'if' statement. Braces will not be
# removed if the braced statement contains an 'else'.
mod_full_brace_if               = ignore    # ignore/add/remove/force

# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
# have, or do not have, braces. If true, braces will be added if any block
# needs braces, and will only be removed if they can be removed from all
# blocks.
#
# Overrides mod_full_brace_if.
mod_full_brace_if_chain         = false    # true/false

# Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.
# If true, mod_full_brace_if_chain will only remove braces from an 'if' that
# does not have an 'else if' or 'else'.
mod_full_brace_if_chain_only    = false    # true/false

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

# Add or remove braces on single-line 'using ()' statement.
mod_full_brace_using            = ignore    # ignore/add/remove/force

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

# Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks
# which span multiple lines.
#
# Affects:
#   mod_full_brace_for
#   mod_full_brace_if
#   mod_full_brace_if_chain
#   mod_full_brace_if_chain_only
#   mod_full_brace_while
#   mod_full_brace_using
#
# Does not affect:
#   mod_full_brace_do
#   mod_full_brace_function
mod_full_brace_nl_block_rem_mlcond = false    # true/false

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

# (Pawn) Whether to change optional semicolons to real semicolons.
mod_pawn_semicolon              = false    # true/false

# Whether to fully parenthesize Boolean expressions in 'while' and 'if'
# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'.
mod_full_paren_if_bool          = false    # true/false

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

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

# If a namespace 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_namespace_closebrace_comment = 0        # unsigned number

# If a class 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_class_closebrace_comment = 0        # unsigned 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        # unsigned number

# If an #ifdef body exceeds the specified number of newlines and doesn't have
# a comment after the #endif, a comment will be added.
mod_add_long_ifdef_endif_comment = 0        # unsigned number

# If an #ifdef or #else body exceeds the specified number of newlines and
# doesn't have a comment after the #else, a comment will be added.
mod_add_long_ifdef_else_comment = 0        # unsigned number

# Whether to take care of the case by the mod_sort_xx options.
mod_sort_case_sensitive         = false    # true/false

# Whether to sort consecutive single-line 'import' statements.
mod_sort_import                 = false    # true/false

# (C#) Whether to sort consecutive single-line 'using' statements.
mod_sort_using                  = false    # true/false

# Whether to sort consecutive single-line '#include' statements (C/C++) and
# '#import' statements (Objective-C). Be aware that this has the potential to
# break your code if your includes/imports have ordering dependencies.
mod_sort_include                = false    # true/false

# Whether to prioritize '#include' and '#import' statements that contain
# filename without extension when sorting is enabled.
mod_sort_incl_import_prioritize_filename = false    # true/false

# Whether to prioritize '#include' and '#import' statements that does not
# contain extensions when sorting is enabled.
mod_sort_incl_import_prioritize_extensionless = false    # true/false

# Whether to prioritize '#include' and '#import' statements that contain
# angle over quotes when sorting is enabled.
mod_sort_incl_import_prioritize_angle_over_quotes = true     # true/false

# Whether to ignore file extension in '#include' and '#import' statements
# for sorting comparison.
mod_sort_incl_import_ignore_extension = true     # true/false

# Whether to group '#include' and '#import' statements when sorting is enabled.
mod_sort_incl_import_grouping_enabled = false    # true/false

# Whether to move a 'break' that appears after a fully braced 'case' before
# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'.
mod_move_case_break             = false    # true/false

# Add or remove braces around a fully braced case statement. Will only remove
# braces if there are no variable declarations in the block.
mod_case_brace                  = ignore   # ignore/add/remove/force

# Whether to remove a void 'return;' that appears as the last statement in a
# function.
mod_remove_empty_return         = false    # true/false

# Add or remove the comma after the last value of an enumeration.
mod_enum_last_comma             = ignore    # ignore/add/remove/force

# (OC) Whether to organize the properties. If true, properties will be
# rearranged according to the mod_sort_oc_property_*_weight factors.
mod_sort_oc_properties          = false    # true/false

# (OC) Weight of a class property modifier.
mod_sort_oc_property_class_weight = 0        # number

# (OC) Weight of 'atomic' and 'nonatomic'.
mod_sort_oc_property_thread_safe_weight = 0        # number

# (OC) Weight of 'readwrite' when organizing properties.
mod_sort_oc_property_readwrite_weight = 0        # number

# (OC) Weight of a reference type specifier ('retain', 'copy', 'assign',
# 'weak', 'strong') when organizing properties.
mod_sort_oc_property_reference_weight = 0        # number

# (OC) Weight of getter type ('getter=') when organizing properties.
mod_sort_oc_property_getter_weight = 0        # number

# (OC) Weight of setter type ('setter=') when organizing properties.
mod_sort_oc_property_setter_weight = 0        # number

# (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',
# 'null_resettable') when organizing properties.
mod_sort_oc_property_nullability_weight = 0        # number

#
# Preprocessor options
#

# Add or remove indentation of preprocessor directives inside #if blocks
# at brace level 0 (file-level).
pp_indent                       = ignore    # ignore/add/remove/force

# Whether to indent #if/#else/#endif at the brace level. If false, these are
# indented from column 1.
pp_indent_at_level              = false    # true/false

# Specifies the number of columns to indent preprocessors per level
# at brace level 0 (file-level). If pp_indent_at_level=false, also specifies
# the number of columns to indent preprocessors per level
# at brace level > 0 (function-level).
#
# Default: 1
pp_indent_count                 = 0        # unsigned 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 per level added with pp_space.
pp_space_count                  = 0        # unsigned number

# The indent for '#region' and '#endregion' in C# and '#pragma region' in
# C/C++. Negative values decrease indent down to the first column.
pp_indent_region                = 0        # number

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

# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when
# not at file-level. Negative values decrease indent down to the first column.
#
# =0: Indent preprocessors using output_tab_size
# >0: Column at which all preprocessors will be indented
pp_indent_if                    = 0        # number

# Whether to indent the code between #if, #else and #endif.
pp_if_indent_code               = false    # true/false

# Whether to indent '#define' at the brace level. If false, these are
# indented from column 1.
pp_define_at_level              = false    # true/false

# Whether to ignore the '#define' body while formatting.
pp_ignore_define_body           = true     # true/false

# Whether to indent case statements between #if, #else, and #endif.
# Only applies to the indent of the preprocesser that the case statements
# directly inside of.
#
# Default: true
pp_indent_case                  = false    # true/false

# Whether to indent whole function definitions between #if, #else, and #endif.
# Only applies to the indent of the preprocesser that the function definition
# is directly inside of.
#
# Default: true
pp_indent_func_def              = false    # true/false

# Whether to indent extern C blocks between #if, #else, and #endif.
# Only applies to the indent of the preprocesser that the extern block is
# directly inside of.
#
# Default: true
pp_indent_extern                = false    # true/false

# Whether to indent braces directly inside #if, #else, and #endif.
# Only applies to the indent of the preprocesser that the braces are directly
# inside of.
#
# Default: true
pp_indent_brace                 = false    # true/false

#
# Sort includes options
#

# The regex for include category with priority 0.
include_category_0              = ""         # string

# The regex for include category with priority 1.
include_category_1              = ""         # string

# The regex for include category with priority 2.
include_category_2              = ""         # string

#
# Use or Do not Use options
#

# true:  indent_func_call_param will be used (default)
# false: indent_func_call_param will NOT be used
#
# Default: true
use_indent_func_call_param      = false    # true/false

# The value of the indentation for a continuation line is calculated
# differently if the statement is:
# - a declaration: your case with QString fileName ...
# - an assignment: your case with pSettings = new QSettings( ...
#
# At the second case the indentation value might be used twice:
# - at the assignment
# - at the function call (if present)
#
# To prevent the double use of the indentation value, use this option with the
# value 'true'.
#
# true:  indent_continue will be used only once
# false: indent_continue will be used every time (default)
use_indent_continue_only_once   = false    # true/false

# The value might be used twice:
# - at the assignment
# - at the opening brace
#
# To prevent the double use of the indentation value, use this option with the
# value 'true'.
#
# true:  indentation will be used only once
# false: indentation will be used every time (default)
indent_cpp_lambda_only_once     = false    # true/false

# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
# historic behavior, but is probably not the desired behavior, so this is off
# by default.
use_sp_after_angle_always       = false    # true/false

# Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,
# this tries to format these so that they match Qt's normalized form (i.e. the
# result of QMetaObject::normalizedSignature), which can slightly improve the
# performance of the QObject::connect call, rather than how they would
# otherwise be formatted.
#
# See options_for_QT.cpp for details.
#
# Default: true
use_options_overriding_for_qt_macros = false    # true/false

# If true: the form feed character is removed from the list
# of whitespace characters.
# See https://en.cppreference.com/w/cpp/string/byte/isspace
use_form_feed_no_more_as_whitespace_character = false    # true/false

#
# Warn levels - 1: error, 2: warning (default), 3: note
#

# (C#) Warning is given if doing tab-to-\t replacement and we have found one
# in a C# verbatim string literal.
#
# Default: 2
warn_level_tabs_found_in_verbatim_string_literals = 2        # unsigned number

# Limit the number of loops.
# Used by uncrustify.cpp to exit from infinite loop.
# 0: no limit.
debug_max_number_of_loops       = 0        # number

# Set the number of the line to protocol;
# Used in the function prot_the_line if the 2. parameter is zero.
# 0: nothing protocol.
debug_line_number_to_protocol   = 0        # number

# Meaning of the settings:
#   Ignore - do not do any changes
#   Add    - makes sure there is 1 or more space/brace/newline/etc
#   Force  - makes sure there is exactly 1 space/brace/newline/etc,
#            behaves like Add in some contexts
#   Remove - removes space/brace/newline/etc
#
#
# - Token(s) can be treated as specific type(s) with the 'set' option:
#     `set tokenType tokenString [tokenString...]`
#
#     Example:
#       `set BOOL __AND__ __OR__`
#
#     tokenTypes are defined in src/token_enum.h, use them without the
#     'CT_' prefix: 'CT_BOOL' => 'BOOL'
#
#
# - Token(s) can be treated as type(s) with the 'type' option.
#     `type tokenString [tokenString...]`
#
#     Example:
#       `type int c_uint_8 Rectangle`
#
#     This can also be achieved with `set TYPE int c_uint_8 Rectangle`
#
#
# To embed whitespace in tokenStrings use the '\' escape character, or quote
# the tokenStrings. These quotes are supported: "'`
#
#
# - Support for the auto detection of languages through the file ending can be
#   added using the 'file_ext' command.
#     `file_ext langType langString [langString..]`
#
#     Example:
#       `file_ext CPP .ch .cxx .cpp.in`
#
#     langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use
#     them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP'
#
#
# - Custom macro-based indentation can be set up using 'macro-open',
#   'macro-else' and 'macro-close'.
#     `(macro-open | macro-else | macro-close) tokenString`
#
#     Example:
#       `macro-open  BEGIN_TEMPLATE_MESSAGE_MAP`
#       `macro-open  BEGIN_MESSAGE_MAP`
#       `macro-close END_MESSAGE_MAP`
#
#
# option(s) with 'not default' value: 232
#
