-# Uncrustify 0.57
+# Uncrustify 0.60
#
# General options
newlines = auto # auto/lf/crlf/cr
# The original size of tabs in the input
-input_tab_size = 8 # number
+input_tab_size = 4 # number
# The size of tabs in the output (only used if align_with_tabs=true)
-output_tab_size = 8 # number
+output_tab_size = 4 # number
# The ASCII value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
-string_escape_char = 92 # number
+string_escape_char = 92 # number #ignore
# Alternate string escape char for Pawn. Only works right before the quote char.
+string_escape_char2 = 0 # number #ignore
+
+# Allow interpreting '>=' and '>>=' as part of a template in 'void f(list<list<B>>=val);'.
+# If true (default), 'assert(x<0 && y>=3)' will be broken.
+# Improvements to template detection may make this option obsolete.
# WARNING: Code doesn't seem to use this feature - delete from the config?
-string_escape_char2 = 0 # number
+tok_split_gte = false # false/true
+
+# Control what to do with the UTF-8 BOM (recommend 'remove')
+utf8_bom = remove # ignore/add/remove/force #force
+
+# If the file contains bytes with values between 128 and 255, but is not UTF-8, then output as UTF-8
+utf8_byte = true # false/true #force
+
+# Force the output encoding to UTF-8
+utf8_force = true # false/true #force
#
# Indenting
# The number of columns to indent per level.
# Usually 2, 3, 4, or 8.
-indent_columns = 8 # number
+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.
-indent_continue = 0 # number
+# For FreeBSD, this is set to 4. Negative value is absolute and not increased for each ( level
+indent_continue = indent_columns # number
# How to use tabs when indenting code
# 0=spaces only
# WARNING: Code doesn't seem to use this feature - delete from the config?
indent_class_colon = false # false/true
+# Virtual indent from the ':' for member initializers. Default is 2
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+indent_ctor_init_leading = 0 # number
+
+# Additional indenting for constructor initializer list
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+indent_ctor_init = 0 # number
+
# False=treat 'else\nif' as 'else if' for indenting purposes
# True=indent the 'if' one level
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-indent_else_if = false # false/true
+indent_else_if = true # false/true
# Amount to indent variable declarations after a open brace. neg=relative, pos=absolute
indent_var_def_blk = 0 # number
# WARNING: Code doesn't seem to use this feature - delete from the config?
indent_var_def_cont = 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 = true # false/true
# Same as indent_func_call_param, but for function defs
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-indent_func_def_param = false # false/true
+indent_func_def_param = true # false/true
# Same as indent_func_call_param, but for function protos
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-indent_func_proto_param = false # false/true
+indent_func_proto_param = true # false/true
# Same as indent_func_call_param, but for class declarations
# WARNING: Code doesn't seem to use this feature - delete from the config?
# The number of spaces to indent a continued '->' or '.'
# Usually set to 0, 1, or indent_columns.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
indent_member = 0 # number
# Spaces to indent single line ('//') comments on lines before code
# 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
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+indent_align_assign = false # false/true
+
+# Indent OC blocks at brace level instead of usual rules.
+indent_oc_block = false # false/true #ignore
+
+# Indent OC blocks in a message relative to the parameter name.
+# 0=use indent_oc_block rules, 1+=spaces to indent #ignore
+indent_oc_block_msg = 0 # number #ignore
+
+# Minimum indent for subsequent parameters
+indent_oc_msg_colon = 0 # number #ignore
#
# Spacing options
#
# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
-# NOTE: is 518 worse than ignore
+# NOTE: is 1002 worse than ignore
sp_arith = add # ignore/add/remove/force
# Add or remove space around assignment operator '=', '+=', etc
-# NOTE: is 4 worse than ignore
+# NOTE: is 44 worse than ignore
sp_assign = add # ignore/add/remove/force
+# Add or remove space around '=' in C++11 lambda capture specifications. Overrides sp_assign
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_cpp_lambda_assign = ignore # ignore/add/remove/force
+
+# Add or remove space after the capture specification in C++11 lambda.
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_cpp_lambda_paren = ignore # ignore/add/remove/force
+
# Add or remove space around assignment operator '=' in a prototype
# WARNING: Code doesn't seem to use this feature - delete from the config?
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 before assignment operator '=', '+=', etc. Overrides sp_assign.
+sp_before_assign = ignore # ignore/add/remove/force #force
+
+# Add or remove space after assignment operator '=', '+=', etc. Overrides sp_assign.
+sp_after_assign = ignore # ignore/add/remove/force #force
# Add or remove space around assignment '=' in enum
# WARNING: Code doesn't seem to use this feature - delete from the config?
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 before assignment '=' in enum. Overrides sp_enum_assign.
+sp_enum_before_assign = ignore # ignore/add/remove/force #force
+
+# Add or remove space after assignment '=' in enum. Overrides sp_enum_assign.
+sp_enum_after_assign = ignore # ignore/add/remove/force #force
# Add or remove space around preprocessor '##' concatenation operator. Default=Add
-# NOTE: is 2 worse than ignore
+# NOTE: is 4 worse than ignore
sp_pp_concat = remove # ignore/add/remove/force
-# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator. Default=Add
+# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator.
sp_pp_stringify = remove # ignore/add/remove/force
+# Add or remove space before preprocessor '#' stringify operator as in '#define x(y) L#y'.
+sp_before_pp_stringify = add # ignore/add/remove/force
+
# Add or remove space around boolean operators '&&' and '||'
+# NOTE: is 2 worse than ignore
sp_bool = add # ignore/add/remove/force
# Add or remove space around compare operator '<', '>', '==', etc
-# NOTE: is 4 worse than ignore
+# NOTE: is 184 worse than ignore
sp_compare = add # ignore/add/remove/force
# Add or remove space inside '(' and ')'
-# NOTE: is 2 worse than ignore
+# NOTE: is 10 worse than ignore
sp_inside_paren = remove # ignore/add/remove/force
# Add or remove space between nested parens
+# NOTE: is 14 worse than ignore
sp_paren_paren = remove # ignore/add/remove/force
# Whether to balance spaces inside nested parens
sp_paren_brace = ignore # ignore/add/remove/force
# Add or remove space before pointer star '*'
-sp_before_ptr_star = add # ignore/add/remove/force
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+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.
# Add or remove space after a pointer star '*', if followed by a func proto/def.
sp_after_ptr_star_func = add # ignore/add/remove/force
+# Add or remove space after a pointer star '*', if followed by an open paren (function types).
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+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 = add # ignore/add/remove/force
# Add or remove space between type and word. Default=Force
sp_after_type = add # ignore/add/remove/force
+# Add or remove space before the paren in the D constructs 'template Foo(' and 'class Foo('.
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+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.
# WARNING: Code doesn't seem to use this feature - delete from the config?
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_angle_shift = ignore # 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.
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_permit_cpp11_shift = false # false/true
+
# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
-# NOTE: is 734 worse than ignore
+# NOTE: is 4808 worse than ignore
sp_before_sparen = remove # ignore/add/remove/force
# Add or remove space inside if-condition '(' and ')'
-# NOTE: is 14 worse than ignore
+# NOTE: is 42 worse than ignore
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 before if-condition ')'. Overrides sp_inside_sparen.
+sp_inside_sparen_close = ignore # ignore/add/remove/force #force
+
+# Add or remove space before if-condition '('. Overrides sp_inside_sparen.
+sp_inside_sparen_open = ignore # ignore/add/remove/force #force
# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_after_sparen = ignore # ignore/add/remove/force
# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_sparen_brace = ignore # ignore/add/remove/force
+sp_sparen_brace = add # ignore/add/remove/force
# Add or remove space between 'invariant' and '(' in the D language.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_invariant_paren = ignore # ignore/add/remove/force
+sp_invariant_paren = ignore # ignore/add/remove/force #ignore
# Add or remove space after the ')' in 'invariant (C) c' in the D language.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_invariant_paren = ignore # ignore/add/remove/force
+sp_after_invariant_paren = ignore # ignore/add/remove/force #ignore
# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_special_semi = ignore # ignore/add/remove/force
# Add or remove space before ';'. Default=Remove
+# NOTE: is 2 worse than ignore
sp_before_semi = remove # ignore/add/remove/force
# Add or remove space before ';' in non-empty 'for' statements
sp_before_semi_for_empty = add # ignore/add/remove/force
# Add or remove space after ';', except when followed by a comment. Default=Add
-# NOTE: is 60 worse than ignore
+# NOTE: is 52 worse than ignore
sp_after_semi = add # ignore/add/remove/force
# Add or remove space after ';' in non-empty 'for' statements. Default=Force
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_before_squares = ignore # ignore/add/remove/force
-# Add or remove space inside '[' and ']'
+# Add or remove space inside a non-empty '[' and ']'
sp_inside_square = remove # ignore/add/remove/force
# Add or remove space after ','
-# NOTE: is 48 worse than ignore
+# NOTE: is 714 worse than ignore
sp_after_comma = add # ignore/add/remove/force
# Add or remove space before ','
+# NOTE: is 58 worse than ignore
sp_before_comma = remove # ignore/add/remove/force
# Add or remove space between an open paren and comma: '(,' vs '( ,'
sp_after_cast = ignore # ignore/add/remove/force
# Add or remove spaces inside cast parens
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_inside_paren_cast = ignore # ignore/add/remove/force
+sp_inside_paren_cast = remove # 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)'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_cpp_cast_paren = ignore # ignore/add/remove/force
+sp_cpp_cast_paren = remove # ignore/add/remove/force
# Add or remove space between 'sizeof' and '('
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_sizeof_paren = ignore # ignore/add/remove/force
# Add or remove space after the tag keyword (Pawn)
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_tag = ignore # ignore/add/remove/force
+sp_after_tag = ignore # ignore/add/remove/force #ignore
# Add or remove space inside enum '{' and '}'
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_inside_braces = add # ignore/add/remove/force
# Add or remove space inside '{}'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_inside_braces_empty = ignore # ignore/add/remove/force
+# NOTE: is 10 worse than ignore
+sp_inside_braces_empty = remove # ignore/add/remove/force
# Add or remove space between return type and function name
# A minimum of 1 is forced except for pointer return types.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_type_func = ignore # ignore/add/remove/force
+sp_type_func = add # ignore/add/remove/force
# Add or remove space between function name and '(' on function declaration
+# NOTE: is 30 worse than ignore
sp_func_proto_paren = remove # ignore/add/remove/force
# Add or remove space between function name and '(' on function definition
-# NOTE: is 14 worse than ignore
+# NOTE: is 400 worse than ignore
sp_func_def_paren = remove # ignore/add/remove/force
# Add or remove space inside empty function '()'
sp_inside_fparens = remove # ignore/add/remove/force
# Add or remove space inside function '(' and ')'
-# NOTE: is 8 worse than ignore
+# NOTE: is 76 worse than ignore
sp_inside_fparen = remove # ignore/add/remove/force
+# Add or remove space inside the first parens in the function type: 'void (*x)(...)'
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_inside_tparen = ignore # ignore/add/remove/force
+
+# Add or remove between the parens in the function type: 'void (*x)(...)'
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_after_tparen_close = ignore # ignore/add/remove/force
+
# Add or remove space between ']' and '(' when part of a function call.
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_square_fparen = ignore # ignore/add/remove/force
# Add or remove space between ')' and '{' of function
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_fparen_brace = ignore # ignore/add/remove/force
+sp_fparen_brace = add # ignore/add/remove/force
# Add or remove space between function name and '(' on function calls
-# NOTE: is 28 worse than ignore
+# NOTE: is 936 worse than ignore
sp_func_call_paren = remove # ignore/add/remove/force
# Add or remove space between function name and '()' on function calls without parameters.
sp_func_call_user_paren = remove # ignore/add/remove/force
# Add or remove space between a constructor/destructor and the open paren
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_func_class_paren = ignore # ignore/add/remove/force
+sp_func_class_paren = remove # ignore/add/remove/force
# Add or remove space between 'return' and '('
# WARNING: Code doesn't seem to use this feature - delete from the config?
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_throw_paren = ignore # ignore/add/remove/force
+# Add or remove space between 'throw' and anything other than '(' as in '@throw [...];'
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+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.
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+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 #ignore
+
+# 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 #ignore
+
# Add or remove space between macro and value
sp_macro = remove # ignore/add/remove/force #force
# Add or remove space between macro function ')' and value
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_macro_func = ignore # ignore/add/remove/force
+sp_macro_func = remove # ignore/add/remove/force #force
# Add or remove space between 'else' and '{' if on the same line
sp_else_brace = add # ignore/add/remove/force
sp_brace_else = ignore # ignore/add/remove/force
# Add or remove space between '}' and the name of a typedef on the same line
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_brace_typedef = ignore # ignore/add/remove/force
+sp_brace_typedef = add # ignore/add/remove/force
# Add or remove space between 'catch' and '{' if on the same line
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_after_dc = ignore # ignore/add/remove/force
# Add or remove around the D named array initializer ':' operator
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_d_array_colon = ignore # ignore/add/remove/force
+sp_d_array_colon = ignore # ignore/add/remove/force #ignore
# Add or remove space after the '!' (not) operator. Default=Remove
sp_not = remove # ignore/add/remove/force
sp_addr = ignore # ignore/add/remove/force
# Add or remove space around the '.' or '->' operators. Default=Remove
-# NOTE: is 4 worse than ignore
+# NOTE: is 28 worse than ignore
sp_member = remove # ignore/add/remove/force
# Add or remove space after the '*' (dereference) operator. Default=Remove
sp_deref = ignore # ignore/add/remove/force
# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. Default=Remove
-# NOTE: is 2 worse than ignore
+# NOTE: is 4 worse than ignore
sp_sign = remove # ignore/add/remove/force
# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'. Default=Remove
sp_before_nl_cont = add # ignore/add/remove/force #force
# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_oc_scope = ignore # ignore/add/remove/force
+sp_after_oc_scope = ignore # ignore/add/remove/force #ignore
# Add or remove space after the colon in message specs
# '-(int) f:(int) x;' vs '-(int) f: (int) x;'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_oc_colon = ignore # ignore/add/remove/force
+sp_after_oc_colon = ignore # ignore/add/remove/force #ignore
# Add or remove space before the colon in message specs
# '-(int) f: (int) x;' vs '-(int) f : (int) x;'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_before_oc_colon = ignore # ignore/add/remove/force
+sp_before_oc_colon = ignore # ignore/add/remove/force #ignore
+
+# 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 #ignore
+
+# 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 #ignore
# Add or remove space after the colon in message specs
# '[object setValue:1];' vs '[object setValue: 1];'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_send_oc_colon = ignore # ignore/add/remove/force
+sp_after_send_oc_colon = ignore # ignore/add/remove/force #ignore
# Add or remove space before the colon in message specs
# '[object setValue:1];' vs '[object setValue :1];'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_before_send_oc_colon = ignore # ignore/add/remove/force
+sp_before_send_oc_colon = ignore # ignore/add/remove/force #ignore
# Add or remove space after the (type) in message specs
# '-(int)f: (int) x;' vs '-(int)f: (int)x;'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_oc_type = ignore # ignore/add/remove/force
+sp_after_oc_type = ignore # ignore/add/remove/force #ignore
# Add or remove space after the first (type) in message specs
# '-(int) f:(int)x;' vs '-(int)f:(int)x;'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_oc_return_type = ignore # ignore/add/remove/force
+sp_after_oc_return_type = ignore # ignore/add/remove/force #ignore
# Add or remove space between '@selector' and '('
# '@selector(msgName)' vs '@selector (msgName)'
# Also applies to @protocol() constructs
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_oc_at_sel = ignore # ignore/add/remove/force
+sp_after_oc_at_sel = ignore # ignore/add/remove/force #ignore
# Add or remove space between '@selector(x)' and the following word
# '@selector(foo) a:' vs '@selector(foo)a:'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force
+sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force #ignore
# Add or remove space inside '@selector' parens
# '@selector(foo)' vs '@selector( foo )'
# Also applies to @protocol() constructs
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force
+sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force #ignore
# Add or remove space before a block pointer caret
# '^int (int arg){...}' vs. ' ^int (int arg){...}'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_before_oc_block_caret = ignore # ignore/add/remove/force
+sp_before_oc_block_caret = ignore # ignore/add/remove/force #ignore
# Add or remove space after a block pointer caret
# '^int (int arg){...}' vs. '^ int (int arg){...}'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-sp_after_oc_block_caret = ignore # ignore/add/remove/force
+sp_after_oc_block_caret = ignore # ignore/add/remove/force #ignore
+
+# Add or remove space between the receiver and selector in a message.
+# '[receiver selector ...]'
+sp_after_oc_msg_receiver = ignore # ignore/add/remove/force #ignore
+
+# Add or remove space after @property.
+sp_after_oc_property = ignore # ignore/add/remove/force #ignore
# Add or remove space around the ':' in 'b ? t : f'
sp_cond_colon = add # ignore/add/remove/force
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_range = ignore # ignore/add/remove/force
+# Control the spacing after ':' in 'for (TYPE VAR : EXPR)' (Java)
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_after_for_colon = ignore # ignore/add/remove/force
+
+# Control the spacing before ':' in 'for (TYPE VAR : EXPR)' (Java)
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_before_for_colon = ignore # ignore/add/remove/force
+
+# Control the spacing in 'extern (C)' (D)
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_extern_paren = ignore # ignore/add/remove/force
+
# Control the space after the opening of a C++ comment '// A' vs '//A'
-# NOTE: is 246 worse than ignore
+# NOTE: is 1434 worse than ignore
sp_cmt_cpp_start = add # ignore/add/remove/force
# Controls the spaces between #else or #endif and a trailing comment
# WARNING: Code doesn't seem to use this feature - delete from the config?
sp_endif_cmt = ignore # ignore/add/remove/force
+# Controls the spaces after 'new', 'delete', and 'delete[]'
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_after_new = ignore # ignore/add/remove/force
+
+# Controls the spaces before a trailing or embedded comment
+sp_before_tr_emb_cmt = force # ignore/add/remove/force #force
+
+# Number of spaces before a trailing or embedded comment
+sp_num_before_tr_emb_cmt = 2 # number #force
+
+# Control space between a Java annotation and the open paren.
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+sp_annotation_paren = ignore # ignore/add/remove/force
+
#
# Code alignment (not left column spaces/tabs)
#
align_with_tabs = false # false/true
# Whether to bump out to the next tab when aligning
-# WARNING: Code doesn't seem to use this feature - delete from the config?
align_on_tabstop = false # false/true
# Whether to left-align numbers
align_var_struct_gap = 0 # number
# The span for aligning struct initializer values (0=don't align)
-# WARNING: Code doesn't seem to use this feature - delete from the config?
align_struct_init_span = 0 # number
# The minimum space between the type and the synonym of a typedef
align_typedef_amp_style = 0 # number
# The span for aligning comments that end lines (0=don't align)
-align_right_cmt_span = 0 # number
+align_right_cmt_span = 2 # number
# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
-# WARNING: Code doesn't seem to use this feature - delete from the config?
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.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
+# WARNING: Best is not unique (0 1)
align_right_cmt_gap = 0 # number
# Align trailing comment at or beyond column N; 'pulls in' comments as a bonus side effect (0=ignore)
-# WARNING: Code doesn't seem to use this feature - delete from the config?
+# WARNING: Best is not unique (1 2)
align_right_cmt_at_col = 0 # number
# The span for aligning function prototypes (0=don't align)
align_single_line_brace_gap = 0 # number
# The span for aligning ObjC msg spec (0=don't align)
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-align_oc_msg_spec_span = 0 # number
+align_oc_msg_spec_span = 0 # number #ignore
# 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
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+align_pp_define_together = false # false/true
+
# The minimum space between label and value of a preprocessor define
# WARNING: Code doesn't seem to use this feature - delete from the config?
align_pp_define_gap = 0 # number
align_left_shift = false # false/true
# Span for aligning parameters in an Obj-C message call on the ':' (0=don't align)
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-align_oc_msg_colon_span = 0 # number
+align_oc_msg_colon_span = 0 # number #ignore
+
+# If true, always align with the first parameter, even if it is too short.
+align_oc_msg_colon_first = false # false/true #ignore
# Aligning parameters in an Obj-C '+' or '-' declaration on the ':'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-align_oc_decl_colon = false # false/true
+align_oc_decl_colon = false # false/true #ignore
#
# Newline adding and removing options
# Don't split one-line if/else statements - 'if(a) b++;'
nl_if_leave_one_liners = true # false/true
+# Don't split one-line OC messages
+nl_oc_msg_leave_one_liner = false # false/true #ignore
+
# Add or remove newlines at the start of the file
nl_start_of_file = remove # ignore/add/remove/force #force
# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-nl_start_of_file_min = 0 # number
+nl_start_of_file_min = 0 # number #force
# Add or remove newline at the end of the file
-nl_end_of_file = add # ignore/add/remove/force
+nl_end_of_file = add # ignore/add/remove/force #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
+nl_end_of_file_min = 1 # number #force
# Add or remove newline between '=' and '{'
# WARNING: Code doesn't seem to use this feature - delete from the config?
# WARNING: Code doesn't seem to use this feature - delete from the config?
nl_after_square_assign = ignore # ignore/add/remove/force
-# The number of blank lines after a block of variable definitions
+# 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 #force
+# The number of newlines before a block of typedefs
+# 0 = No change (default)
+nl_typedef_blk_start = 0 # number #force
+
+# The number of newlines after a block of typedefs
+# 0 = No change (default)
+nl_typedef_blk_end = 0 # number #force
+
+# The maximum consecutive newlines within a block of typedefs
+# 0 = No change (default)
+# WARNING: Best is not unique (0 2)
+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)
+# WARNING: Best is not unique (0 1)
+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)
+# WARNING: Best is not unique (0 1)
+nl_var_def_blk_end = 0 # number
+
+# The maximum consecutive newlines within a block of variable definitions
+# 0 = No change (default)
+# WARNING: Best is not unique (0 3)
+nl_var_def_blk_in = 0 # number
+
# Add or remove newline between a function call's ')' and '{', as in:
# list_for_each(item, &list) { }
+# NOTE: is 28 worse than ignore
nl_fcall_brace = add # 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 '{'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-nl_struct_brace = ignore # ignore/add/remove/force
+nl_struct_brace = add # ignore/add/remove/force
# Add or remove newline between 'union' and '{'
# WARNING: Code doesn't seem to use this feature - delete from the config?
nl_union_brace = ignore # ignore/add/remove/force
# Add or remove newline between 'if' and '{'
-# NOTE: is 120 worse than ignore
+# NOTE: is 253 worse than ignore
nl_if_brace = add # ignore/add/remove/force
# Add or remove newline between '}' and 'else'
nl_getset_brace = ignore # ignore/add/remove/force
# Add or remove newline between 'for' and '{'
-# NOTE: is 23 worse than ignore
+# NOTE: is 93 worse than ignore
nl_for_brace = add # ignore/add/remove/force
# Add or remove newline between 'catch' and '{'
nl_brace_catch = ignore # ignore/add/remove/force
# Add or remove newline between 'while' and '{'
-# NOTE: is 8 worse than ignore
+# NOTE: is 21 worse than ignore
nl_while_brace = add # ignore/add/remove/force
+# Add or remove newline between 'scope (x)' and '{' (D)
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+nl_scope_brace = ignore # ignore/add/remove/force
+
+# Add or remove newline between 'unittest' and '{' (D)
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+nl_unittest_brace = ignore # ignore/add/remove/force
+
+# Add or remove newline between 'version (x)' and '{' (D)
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+nl_version_brace = ignore # ignore/add/remove/force
+
# Add or remove newline between 'using' and '{'
# WARNING: Code doesn't seem to use this feature - delete from the config?
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.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-nl_brace_brace = ignore # ignore/add/remove/force
+nl_brace_brace = remove # ignore/add/remove/force
# Add or remove newline between 'do' and '{'
+# NOTE: is 3 worse than ignore
nl_do_brace = add # ignore/add/remove/force
# Add or remove newline between '}' and 'while' of 'do' statement
nl_brace_while = add # ignore/add/remove/force #force
# Add or remove newline between 'switch' and '{'
-# NOTE: is 20 worse than ignore
+# NOTE: is 21 worse than ignore
nl_switch_brace = add # ignore/add/remove/force
# Add a newline between ')' and '{' if the ')' is on a different line than the if/for/etc.
# 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.
+# NOTE: is 27 worse than ignore
+nl_case_colon_brace = add # ignore/add/remove/force
+
# Newline between namespace and {
# WARNING: Code doesn't seem to use this feature - delete from the config?
nl_namespace_brace = ignore # ignore/add/remove/force
nl_func_scope_name = ignore # ignore/add/remove/force
# Add or remove newline between return type and function name in a prototype
-# NOTE: is 1 worse than ignore
+# NOTE: is 6 worse than ignore
nl_func_proto_type_name = remove # ignore/add/remove/force
# Add or remove newline between a function name and the opening '('
nl_func_def_paren = remove # ignore/add/remove/force
# Add or remove newline after '(' in a function declaration
+# NOTE: is 6 worse than ignore
nl_func_decl_start = remove # ignore/add/remove/force
# Add or remove newline after '(' in a function definition
+# NOTE: is 23 worse than ignore
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
+# Overrides nl_func_decl_start when there is only one parameter.
+nl_func_decl_start_single = ignore # ignore/add/remove/force #force
+
+# Overrides nl_func_def_start when there is only one parameter.
+nl_func_def_start_single = ignore # ignore/add/remove/force #force
# Add or remove newline after each ',' in a function declaration
+# NOTE: is 38 worse than ignore
nl_func_decl_args = remove # ignore/add/remove/force
# Add or remove newline after each ',' in a function definition
+# NOTE: is 37 worse than ignore
nl_func_def_args = remove # ignore/add/remove/force
# Add or remove newline before the ')' in a function declaration
# 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
+# Overrides nl_func_decl_end when there is only one parameter.
+nl_func_decl_end_single = ignore # ignore/add/remove/force #force
+
+# Overrides nl_func_def_end when there is only one parameter.
+nl_func_def_end_single = ignore # ignore/add/remove/force #force
# Add or remove newline between '()' in a function declaration.
nl_func_decl_empty = remove # ignore/add/remove/force
# Add or remove newline between '()' in a function definition.
nl_func_def_empty = remove # ignore/add/remove/force
+# Whether to put each OC message parameter on a separate line
+# See nl_oc_msg_leave_one_liner #ignore
+nl_oc_msg_args = false # false/true #ignore
+
# Add or remove newline between function signature and '{'
-# NOTE: is 27 worse than ignore
+# NOTE: is 156 worse than ignore
nl_fdef_brace = add # ignore/add/remove/force
-# Whether to put a newline after 'return' statement
-nl_after_return = false # false/true
-
# Add or remove a newline between the return keyword and return expression.
-# NOTE: is 2 worse than ignore
+# NOTE: is 15 worse than ignore
nl_return_expr = remove # ignore/add/remove/force
# Whether to put a newline after semicolons, except in 'for' statements
# Whether to put a newline after brace open.
# This also adds a newline before the matching brace close.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
nl_after_brace_open = false # false/true
# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
# 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.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
nl_after_vbrace_open = false # false/true
# Whether to put a newline after a virtual brace open with an empty body.
# 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 = remove # ignore/add/remove/force
+
# Whether to alter newlines in '#define' macros
-nl_define_macro = true # false/true
+nl_define_macro = false # false/true
# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
-# WARNING: Code doesn't seem to use this feature - delete from the config?
nl_squeeze_ifdef = false # false/true
# Add or remove blank line before 'if'
#
# The position of arithmetic operators in wrapped expressions
-pos_arith = lead # ignore/lead/lead_break/lead_force/trail/trail_break/trail_force
+pos_arith = join # 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 = trail # ignore/lead/lead_break/lead_force/trail/trail_break/trail_force
+pos_assign = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
# The position of boolean operators in wrapped expressions
-pos_bool = lead # ignore/lead/lead_break/lead_force/trail/trail_break/trail_force
+pos_bool = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
# The position of comparison operators in wrapped expressions
-# WARNING: Best is not unique (lead trail)
-pos_compare = ignore # ignore/lead/lead_break/lead_force/trail/trail_break/trail_force
+# WARNING: Best is not unique (join lead)
+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 = trail # ignore/lead/lead_break/lead_force/trail/trail_break/trail_force
+# NOTE: is 4 worse than ignore
+pos_conditional = trail # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
# The position of the comma in wrapped expressions
-pos_comma = trail # ignore/lead/lead_break/lead_force/trail/trail_break/trail_force
+# NOTE: is 2 worse than ignore
+pos_comma = trail # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
# The position of the comma in the constructor initialization list
# WARNING: Code doesn't seem to use this feature - delete from the config?
-pos_class_comma = ignore # ignore/lead/lead_break/lead_force/trail/trail_break/trail_force
+pos_class_comma = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
# The position of colons between constructor and member initialization
# WARNING: Code doesn't seem to use this feature - delete from the config?
-pos_class_colon = ignore # ignore/lead/lead_break/lead_force/trail/trail_break/trail_force
+pos_class_colon = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
#
# Line Splitting options
# WARNING: Code doesn't seem to use this feature - delete from the config?
ls_func_split_full = false # false/true
+# Whether to split lines as close to code_width as possible and ignore some groupings
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+ls_code_width = false # false/true
+
#
# Blank line options
#
# 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
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+nl_after_func_body_class = 0 # number
+
# The number of newlines after '}' of a single line function body
# WARNING: Best is not unique (0 1)
nl_after_func_body_one_liner = 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.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
+# WARNING: Best is not unique (0 1)
nl_before_c_comment = 0 # number
# The minimum number of newlines before a CPP comment.
# WARNING: Code doesn't seem to use this feature - delete from the config?
nl_after_multiline_comment = false # false/true
+# The number of newlines after '}' or ';' of a struct/enum/union definition
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+nl_after_struct = 0 # number
+
+# The number of newlines after '}' or ';' of a class definition
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+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.
# The number of newlines between a function def and the function comment.
# 0 = No change.
-# WARNING: Best is not unique (0 2)
nl_comment_func_def = 0 # number
# The number of newlines after a try-catch-finally block that isn't followed by a brace close.
# WARNING: Code doesn't seem to use this feature - delete from the config?
nl_between_get_set = 0 # number
+# Add or remove newline between C# property and the '{'
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+nl_property_brace = ignore # ignore/add/remove/force
+
# Whether to remove blank lines after '{'
eat_blanks_after_open_brace = true # false/true #force
# Whether to remove blank lines before '}'
eat_blanks_before_close_brace = true # false/true #force
+# 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
+# ERROR: nl_remove_extra_newlines = 1 crashes with status 139.
+# ERROR: nl_remove_extra_newlines = 2 crashes with status 139.
+# WARNING: Best is not unique (0 indent_columns)
+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 #force
+
+# Whether to put a blank line after 'return' statements, unless followed by a close brace.
+nl_after_return = false # false/true #force
+
+# Whether to put a newline after a Java annotation statement.
+# Only affects annotations that are after a newline.
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+nl_after_annotation = ignore # ignore/add/remove/force
+
+# Controls the newline between two annotations.
+# WARNING: Code doesn't seem to use this feature - delete from the config?
+nl_between_annotation = ignore # ignore/add/remove/force
+
#
# Code modifying options (non-whitespace)
#
mod_full_brace_do = add # ignore/add/remove/force
# Add or remove braces on single-line 'for' statement
-# NOTE: is 16 worse than ignore
+# NOTE: is 5 worse than ignore
mod_full_brace_for = remove # ignore/add/remove/force
# Add or remove braces on single-line function definitions. (Pawn)
-# WARNING: Code doesn't seem to use this feature - delete from the config?
-mod_full_brace_function = ignore # ignore/add/remove/force
+mod_full_brace_function = ignore # ignore/add/remove/force #ignore
# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
-# NOTE: is 35 worse than ignore
-mod_full_brace_if = remove # ignore/add/remove/force
+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_using = ignore # ignore/add/remove/force
# Add or remove unnecessary paren on 'return' statement
+# NOTE: is 42 worse than ignore
mod_paren_on_return = remove # ignore/add/remove/force
# Whether to change optional semicolons to real semicolons
mod_full_paren_if_bool = false # false/true
# Whether to remove superfluous semicolons
-# WARNING: Code doesn't seem to use this feature - delete from the config?
mod_remove_extra_semicolon = false # false/true
# If a function body exceeds the specified number of newlines and doesn't have a comment after
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 #else, a comment will be added.
+# 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 #endif, a comment will be added.
+# 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]
# 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.
-# WARNING: Code doesn't seem to use this feature - delete from the config?
mod_sort_include = false # false/true
# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
# 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.
-# NOTE: is 41 worse than ignore
+# NOTE: is 581 worse than ignore
mod_case_brace = remove # ignore/add/remove/force
# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
cmt_indent_multi = false # false/true
# Whether to group c-comments that look like they are in a block
-# WARNING: Code doesn't seem to use this feature - delete from the config?
cmt_c_group = false # false/true
# Whether to put an empty '/*' on the first line of the combined c-comment
# WARNING: unsupported string
cmt_insert_class_header = "" # string
+# The filename that contains text to insert before a Obj-C message specification if the method isn't preceeded 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 #ignore
+
# If a preprocessor is encountered when stepping backwards from a function name, then
# this option decides whether the comment should be inserted.
-# Affects cmt_insert_func_header and cmt_insert_class_header.
+# Affects cmt_insert_oc_msg_header, cmt_insert_func_header and cmt_insert_class_header. #ignore
# WARNING: Code doesn't seem to use this feature - delete from the config?
cmt_insert_before_preproc = false # false/true
pp_indent_count = 0 # number
# Add or remove space after # based on pp_level of #if blocks
+# NOTE: is 28 worse than ignore
pp_space = remove # ignore/add/remove/force
# Sets the number of spaces added with pp_space
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
+pp_define_at_level = true # false/true
# You can force a token to be a type with the 'type' option.
# Example:
# You can assign any keyword to any type with the set option.
# set func_call_user _ N_
+# menu QC OO
+macro-open CLASS
+macro-else EXTENDS
+macro-close ENDCLASS
+
+# translations
set func_call_user _
#