#
# General options
#

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

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

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

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

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

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

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

# Override the default ' *INDENT-OFF*' in comments for disabling processing of part of the file.
disable_processing_cmt          = ""         # string

# Override the default ' *INDENT-ON*' in comments for enabling processing of part of the file.
enable_processing_cmt           = ""         # string

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

# Control what to do with 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    # false/true

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

#
# Indenting
#

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

# The continuation indent. If non-zero, this overrides the indent of '(' and '=' continuation indents.
# For FreeBSD, this is set to 4. Negative value is absolute and not increased for each ( level
indent_continue                 = 0        # 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
indent_with_tabs                = 0        # number

# Comments that are not a brace level are indented with tabs on a tabstop.
# Requires indent_with_tabs=2. If false, will use spaces.
indent_cmt_with_tabs            = false    # false/true

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

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

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

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

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

# Disabled indenting class braces if indent_braces is true
indent_braces_no_class          = false    # false/true

# Disabled indenting struct braces if indent_braces is true
indent_braces_no_struct         = false    # false/true

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

# Indent based on the paren open instead of the brace open in '({\n', default is to indent by brace.
indent_paren_open_brace         = false    # false/true

# indent a C# delegate by another level, default is to not indent by another level.
indent_cs_delegate_brace        = false    # false/true

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

# Only indent one namespace and no sub-namespaces.
# Requires indent_namespace=true.
indent_namespace_single_indent  = false    # false/true

# The number of spaces to indent a namespace block
indent_namespace_level          = 0        # number

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

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

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

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

# Indent based on a class colon instead of the stuff after the colon.
# Requires indent_class_colon=true. Default=False
indent_class_on_colon           = false    # false/true

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

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

# Additional indenting for constructor initializer list
indent_ctor_init                = 0        # number

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

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

# Indent continued variable declarations instead of aligning.
indent_var_def_cont             = false    # false/true

# Indent continued shift expressions ('<<' and '>>') instead of aligning.
# Turn align_left_shift off when enabling this.
indent_shift                    = false    # false/true

# True:  force indentation of function definition to start in column 1
# False: use the default behavior
indent_func_def_force_col1      = false    # false/true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Same as indent_label, but for access specifiers that are followed by a colon. Default=1
indent_access_spec              = 1        # number

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

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

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

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

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

# If 'indent_bool_paren' is true, controls the indent of the first expression. If TRUE, aligns the first expression to the following ones
indent_first_bool_expr          = false    # false/true

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

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

# Align continued statements at the '='. Default=True
# If FALSE or the '=' is followed by a newline, the next line is indent one tab.
indent_align_assign             = true     # false/true

# Indent OC blocks at brace level instead of usual rules.
indent_oc_block                 = false    # false/true

# Indent OC blocks in a message relative to the parameter name.
# 0=use indent_oc_block rules, 1+=spaces to indent
indent_oc_block_msg             = 0        # number

# Minimum indent for subsequent parameters
indent_oc_msg_colon             = 0        # number

# If true, prioritize aligning with initial colon (and stripping spaces from lines, if necessary).
# Default=True.
indent_oc_msg_prioritize_first_colon = true     # false/true

# If indent_oc_block_msg and this option are on, blocks will be indented the way that Xcode does by default (from keyword if the parameter is on its own line; otherwise, from the previous indentation level).
indent_oc_block_msg_xcode_style = false    # false/true

# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg keyword.
indent_oc_block_msg_from_keyword = false    # false/true

# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg colon.
indent_oc_block_msg_from_colon  = false    # false/true

# If indent_oc_block_msg and this option are on, blocks will be indented from where the block caret is.
indent_oc_block_msg_from_caret  = false    # false/true

# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is.
indent_oc_block_msg_from_brace  = false    # false/true

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

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

# If true, a brace followed by another token (not a newline) will indent all contained lines to match the token.Default=True.
indent_token_after_brace        = true     # false/true

# If true, cpp lambda body will be indentedDefault=False.
indent_cpp_lambda_body          = false    # false/true

#
# Spacing options
#

# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
# also '>>>' '<<' '>>' '%' '|'
sp_arith                        = ignore   # 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            = ignore   # ignore/add/remove/force

# Add or remove space after the capture specification in C++11 lambda.
sp_cpp_lambda_square_paren      = ignore   # ignore/add/remove/force

# Add or remove space around assignment operator '=' in a prototype
sp_assign_default               = ignore   # ignore/add/remove/force

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

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

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

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

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

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

# Add or remove space around preprocessor '##' concatenation operator. Default=Add
sp_pp_concat                    = add      # 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 parens: '((' vs ') )'
sp_paren_paren                  = remove   # ignore/add/remove/force

# Add or remove space between back-to-back parens: ')(' vs ') ('
sp_cparen_oparen                = ignore   # ignore/add/remove/force

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

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

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

# Add or remove space before pointer star '*' that isn't followed by a variable name
# If set to 'ignore', sp_before_ptr_star is used instead.
sp_before_unnamed_ptr_star      = ignore   # ignore/add/remove/force

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

# Add or remove space after pointer star '*', if followed by a word.
sp_after_ptr_star               = 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 func proto/def.
sp_after_ptr_star_func          = ignore   # ignore/add/remove/force

# Add or remove space after a pointer star '*', if followed by an open paren (function types).
sp_ptr_star_paren               = ignore   # ignore/add/remove/force

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

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

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

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

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

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

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

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

# Add or remove space inside '<' and '>'
sp_inside_angle                 = 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 C++/C# only). Default=Add
sp_angle_shift                  = add      # ignore/add/remove/force

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

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

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

# Add or remove space before if-condition ')'. Overrides sp_inside_sparen.
sp_inside_sparen_close          = ignore   # ignore/add/remove/force

# Add or remove space after if-condition '('. Overrides sp_inside_sparen.
sp_inside_sparen_open           = ignore   # ignore/add/remove/force

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

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

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

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

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

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

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

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

# Add or remove space after ';', except when followed by a comment. Default=Add
sp_after_semi                   = add      # 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: for ( ; ; <here> ).
sp_after_semi_for_empty         = remove   # ignore/add/remove/force

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

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

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

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

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

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

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

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

# Add or remove space between an open paren and comma: '(,' 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              = 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 paren, as in 'operator ++('
sp_after_operator_sym           = ignore   # ignore/add/remove/force

# Add or remove space between the operator symbol and the open paren 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 parens
sp_inside_paren_cast            = ignore   # ignore/add/remove/force

# Add or remove space between the type and open paren 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 after the tag keyword (Pawn)
sp_after_tag                    = ignore   # ignore/add/remove/force

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

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

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

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

# Add or remove space between return type and function name
# A minimum of 1 is forced except for pointer return types.
sp_type_func                    = 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 '(' on function definition
sp_func_def_paren               = remove   # ignore/add/remove/force

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

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

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

# Add or remove space inside the first parens in the function type: 'void (*x)(...)'
sp_inside_tparen                = ignore   # ignore/add/remove/force

# Add or remove between the parens in the function type: 'void (*x)(...)'
sp_after_tparen_close           = ignore   # ignore/add/remove/force

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

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

# 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, like this: 'set func_call_user _' in the config file.
sp_func_call_user_paren         = ignore   # ignore/add/remove/force

# Add or remove space between a constructor/destructor and the open paren
sp_func_class_paren             = 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                 = ignore   # ignore/add/remove/force

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

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

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

# Add or remove space between '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

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

# Add or remove space between 'scope' and '(' in 'scope (something) { }' (D language)
# 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                  = remove   # ignore/add/remove/force

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

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

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

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

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

# Add or remove space between '}' and the name of a typedef on the same line
sp_brace_typedef                = add      # ignore/add/remove/force

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

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

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

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

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

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

# Add or remove space between a variable and '{' for C++ uniform initialization. Default=Add
sp_word_brace                   = add      # ignore/add/remove/force

# Add or remove space between a variable and '{' for a namespace. Default=Add
sp_word_brace_ns                = add      # 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

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

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

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

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

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

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

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

# Add or remove space before or after '++' and '--', 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               = add      # ignore/add/remove/force

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

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

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

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

# 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

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

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

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

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

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

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

# Add or remove space inside '@selector' parens
# '@selector(foo)' vs '@selector( foo )'
# Also applies to @protocol() constructs
sp_inside_oc_at_sel_parens      = ignore   # ignore/add/remove/force

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

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

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

# Add or remove space after @property.
sp_after_oc_property            = ignore   # ignore/add/remove/force

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

# Add or remove space 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                = ignore   # 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/remove space between ? and :.'. Overrides all other sp_cond_* options.
sp_cond_ternary_short           = ignore   # ignore/add/remove/force

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

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

# Control the spacing after ':' in 'for (TYPE VAR : EXPR)'
sp_after_for_colon              = ignore   # ignore/add/remove/force

# Control the spacing before ':' in 'for (TYPE VAR : EXPR)'
sp_before_for_colon             = ignore   # ignore/add/remove/force

# Control the spacing in 'extern (C)' (D)
sp_extern_paren                 = ignore   # ignore/add/remove/force

# Control the space after the opening of a C++ comment '// A' vs '//A'
sp_cmt_cpp_start                = ignore   # ignore/add/remove/force

# TRUE: If space is added with sp_cmt_cpp_start, do it after doxygen sequences like '///', '///<', '//!' and '//!<'.
sp_cmt_cpp_doxygen              = false    # false/true

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

# Controls the spaces between #else or #endif and a trailing comment
sp_endif_cmt                    = ignore   # ignore/add/remove/force

# Controls the spaces after 'new', 'delete' and 'delete[]'
sp_after_new                    = ignore   # ignore/add/remove/force

# Controls the spaces between new and '(' in 'new()'
sp_between_new_paren            = ignore   # ignore/add/remove/force

# Controls the spaces 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        # number

# Control space between a Java annotation and the open paren.
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    # false/true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# The span for aligning class (0=don't align)
align_var_class_span            = 0        # number

# The threshold for aligning class member definitions (0=no limit)
align_var_class_thresh          = 0        # number

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

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

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

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

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

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

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

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

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

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

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

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

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

# Align trailing comment at or beyond column N; 'pulls in' comments as a bonus side effect (0=ignore)
align_right_cmt_at_col          = 0        # number

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

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

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

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

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

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

# Gap for align_single_line_brace.
align_single_line_brace_gap     = 0        # number

# The span for aligning ObjC msg spec (0=don't align)
align_oc_msg_spec_span          = 0        # number

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

# # Align macro functions and variables together
align_pp_define_together        = false    # false/true

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

# The span for aligning on '#define' bodies (0=don't align, other=number of lines including comments between blocks)
align_pp_define_span            = 0        # number

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

# Align text after asm volatile () colons.
align_asm_colon                 = false    # false/true

# Span for aligning parameters in an Obj-C message call on the ':' (0=don't align)
align_oc_msg_colon_span         = 0        # number

# If true, always align with the first parameter, even if it is too short.
align_oc_msg_colon_first        = false    # false/true

# Aligning parameters in an Obj-C '+' or '-' declaration on the ':'
align_oc_decl_colon             = false    # false/true

#
# Newline adding and removing options
#

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

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

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

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

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

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

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

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

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

# Don't split one-line OC messages
nl_oc_msg_leave_one_liner       = false    # false/true

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

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

# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
nl_start_of_file_min            = 0        # number

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

# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
nl_end_of_file_min              = 0        # number

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

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

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

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

# The number of newlines before a block of typedefs
# 0 = No change (default)
# the option 'nl_after_access_spec' takes preference over 'nl_typedef_blk_start'
nl_typedef_blk_start            = 0        # number

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

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

# The number of newlines before a block of variable definitions not at the top of a function body
# 0 = No change (default)
# the option 'nl_after_access_spec' takes preference over 'nl_var_def_blk_start'
nl_var_def_blk_start            = 0        # 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        # number

# The maximum consecutive newlines within a block of variable definitions
# 0 = No change (default)
nl_var_def_blk_in               = 0        # number

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

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

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

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

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

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

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

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

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

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

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

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

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

# 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                     = remove   # ignore/add/remove/force

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

# Add or remove newline between 'switch' and '{'
nl_switch_brace                 = remove   # 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    # false/true

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

# Whether to put a newline before 'case' statement, not after the first 'case'
nl_before_case                  = false    # false/true

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

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

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

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

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

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

# Add or remove newline before/after each ',' in the base class list,
#   (tied to pos_class_comma).
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
nl_func_type_name               = add      # ignore/add/remove/force

# Add or remove newline between return type and function name inside a class {}
# Uses nl_func_type_name or nl_func_proto_type_name if set to ignore.
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 implmementation)
nl_func_class_scope             = ignore   # ignore/add/remove/force

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

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

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

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

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

# Add or remove newline after '(' in a function definition
nl_func_def_start               = remove   # 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 newline after '(' in a function declaration if '(' and ')' are in different lines.
nl_func_decl_start_multi_line   = false    # false/true

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

# 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

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

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

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

# Add or remove newline before the ')' in a function definition
nl_func_def_end                 = remove   # 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 newline before ')' in a function declaration if '(' and ')' are in different lines.
nl_func_decl_end_multi_line     = false    # false/true

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

# 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

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

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

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

# Whether to put each OC message parameter on a separate line
# See nl_oc_msg_leave_one_liner
nl_oc_msg_args                  = false    # false/true

# Add or remove newline between function signature and '{'
nl_fdef_brace                   = add      # 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 a newline between the return keyword and return expression.
nl_return_expr                  = ignore   # ignore/add/remove/force

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

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

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

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

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

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

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

# Whether to put a newline after a virtual brace close.
# Would add a newline before return in: 'if (foo) a++; return;'
nl_after_vbrace_close           = false    # false/true

# Control the newline between the close brace and 'b' in: 'struct { int a; } b;'
# Affects enums, 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    # false/true

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

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

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

# Add or remove blank line after 'if' statement
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 double-space commented-entries in struct/union/enum
nl_ds_struct_enum_cmt           = false    # false/true

# force nl before } of a struct/union/enum
# (lower priority than 'eat_blanks_before_close_brace')
nl_ds_struct_enum_close_brace   = false    # false/true

# Add or remove blank line before 'func_class_def'
nl_before_func_class_def        = 0        # number

# Add or remove blank line before 'func_class_proto'
nl_before_func_class_proto      = 0        # number

# Add or remove a newline before/after a class colon,
#   (tied to pos_class_colon).
nl_class_colon                  = ignore   # ignore/add/remove/force

# Add or remove a newline around a class constructor colon.
# Related to nl_constr_init_args, pos_constr_colon and pos_constr_comma.
nl_constr_colon                 = ignore   # ignore/add/remove/force

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

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

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

#  Change a one-liner if statement into simple unbraced if
# 'if(b) i++;' => 'if(b) i++;'
nl_split_if_one_liner           = false    # false/true

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

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

#
# Positioning options
#

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

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

# The position of boolean operators in wrapped expressions
pos_bool                        = ignore   # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force

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

# The position of conditional (b ? t : f) operators in wrapped expressions
pos_conditional                 = ignore   # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force

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

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

# The position of the comma in the base class list if there are more than one line,
#   (tied to nl_class_init_args).
pos_class_comma                 = ignore   # ignore/join/lead/lead_break/lead_force/trail/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/join/lead/lead_break/lead_force/trail/trail_break/trail_force

# The position of trailing/leading class colon, between class and base class list
#   (tied to nl_class_colon).
pos_class_colon                 = ignore   # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force

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

#
# Line Splitting options
#

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

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

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

# Whether to split lines as close to code_width as possible and ignore some groupings
ls_code_width                   = false    # false/true

#
# Blank line options
#

# The maximum consecutive newlines (3 = 2 blank lines)
nl_max                          = 0        # number

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

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

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

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

# The number of newlines before a multi-line function def body
nl_before_func_body_def         = 0        # number

# The number of newlines before a multi-line function prototype body
nl_before_func_body_proto       = 0        # number

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

# The number of newlines after '}' of a multi-line function body in a class declaration
nl_after_func_body_class        = 0        # number

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

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

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

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

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

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

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

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

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

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

# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:' or 'slots:' label.
# 0 = No change.
# the option 'nl_after_access_spec' takes preference over 'nl_typedef_blk_start' and 'nl_var_def_blk_start'
nl_after_access_spec            = 0        # number

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

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

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

# The number of newlines between the get/set/add/remove handlers in C#.
# 0 = No change.
nl_between_get_set              = 0        # number

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

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

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

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

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

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

# Whether to put a newline after a Java annotation statement.
# Only affects annotations that are after a newline.
nl_after_annotation             = ignore   # ignore/add/remove/force

# Controls the newline between two annotations.
nl_between_annotation           = ignore   # ignore/add/remove/force

#
# Code modifying options (non-whitespace)
#

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

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

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

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

# Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if.
# If any must be braced, they are all braced.  If all can be unbraced, then the braces are removed.
mod_full_brace_if_chain         = false    # false/true

# Make all if/elseif/else statements with at least one 'else' or 'else if' fully braced.
# If mod_full_brace_if_chain is used together with this option, all if-else chains will get braces,
# and simple 'if' statements will lose them (if possible).
mod_full_brace_if_chain_only    = false    # false/true

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

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

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

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

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

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

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

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

# If a 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        # 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        # number

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

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

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

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

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

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

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

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

# If TRUE, it will organize the properties (Obj-C)
mod_sort_oc_properties          = false    # false/true

# Determines weight of atomic/nonatomic (Obj-C)
mod_sort_oc_property_thread_safe_weight = 0        # number

# Determines weight of readwrite (Obj-C)
mod_sort_oc_property_readwrite_weight = 0        # number

# Determines weight of reference type (retain, copy, assign, weak, strong) (Obj-C)
mod_sort_oc_property_reference_weight = 0        # number

# Determines weight of getter type (getter=) (Obj-C)
mod_sort_oc_property_getter_weight = 0        # number

# Determines weight of setter type (setter=) (Obj-C)
mod_sort_oc_property_setter_weight = 0        # number

# Determines weight of nullability type (nullable/nonnull) (Obj-C)
mod_sort_oc_property_nullability_weight = 0        # number

#
# Comment modifications
#

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

# Set the comment reflow mode (default: 0)
# 0: no reflowing (apart from the line wrapping due to cmt_width)
# 1: no touching at all
# 2: full reflow
cmt_reflow_mode                 = 0        # number

# Whether to convert all tabs to spaces in comments. Default is to leave tabs inside comments alone, unless used for indenting.
cmt_convert_tab_to_spaces       = true     # false/true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# The filename that contains text to insert before a Obj-C message specification if the method isn't preceded with a C/C++ comment.
# Will substitute $(message) with the function name and $(javaparam) with the javadoc @param and @return stuff.
cmt_insert_oc_msg_header        = ""         # string

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

# If a function is declared inline to a class definition, then
# this option decides whether the comment should be inserted.
# Affects cmt_insert_func_header.
cmt_insert_before_inlines       = true     # false/true

# If the function is a constructor/destructor, then
# this option decides whether the comment should be inserted.
# Affects cmt_insert_func_header.
cmt_insert_before_ctor_dtor     = false    # false/true

#
# Preprocessor options
#

# Control indent of preprocessors 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 (true) or from column 1 (false)
pp_indent_at_level              = false    # false/true

# Specifies the number of columns to indent preprocessors per level at brace level 0 (file-level).
# If pp_indent_at_level=false, specifies the number of columns to indent preprocessors per level at brace level > 0 (function-level).
# Default=1.
pp_indent_count                 = 1        # number

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

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

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

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

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

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

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

#
# Use or Do not Use options
#

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

# The value of the indentation for a continuation line is calculate differently if the line is:
#   a declaration :your case with QString fileName ...
#   an assigment  :your case with pSettings = new QSettings( ...
# At the second case the option value might be used twice:
#   at the assigment
#   at the function call (if present)
# To prevent the double use of the option 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    # false/true

# SIGNAL/SLOT Qt macros have special formatting options. See options_for_QT.cpp for details.
# Default=True.
use_options_overriding_for_qt_macros = true     # false/true

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

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

# You can force a token to be a type with the 'type' option.
# Example:
# type myfoo1 myfoo2
#
# You can create custom macro-based indentation using macro-open,
# macro-else and macro-close.
# Example:
# macro-open  BEGIN_TEMPLATE_MESSAGE_MAP
# macro-open  BEGIN_MESSAGE_MAP
# macro-close END_MESSAGE_MAP
#
# You can assign any keyword to any type with the set option.
# set func_call_user _ N_
#
# The full syntax description of all custom definition config entries
# is shown below:
#
# define custom tokens as:
# - embed whitespace in token using '' escape character, or
#   put token in quotes
# - these: ' " and ` are recognized as quote delimiters
#
# type token1 token2 token3 ...
#             ^ optionally specify multiple tokens on a single line
# define def_token output_token
#                  ^ output_token is optional, then NULL is assumed
# macro-open token
# macro-close token
# macro-else token
# set id token1 token2 ...
#               ^ optionally specify multiple tokens on a single line
#     ^ id is one of the names in token_enum.h sans the CT_ prefix,
#       e.g. PP_PRAGMA
#
# all tokens are separated by any mix of ',' commas, '=' equal signs
# and whitespace (space, tab)
#
# You can add support for other file extensions using the 'file_ext' command.
# The first arg is the language name used with the '-l' option.
# The remaining args are file extensions, matched with 'endswith'.
#   file_ext CPP .ch .cxx .cpp.in
#
# option(s) with 'not default' value: 0
#
