diff --git a/.uncrustify b/.uncrustify index 43ae453c..c20650e8 100644 --- a/.uncrustify +++ b/.uncrustify @@ -26,30 +26,40 @@ string_escape_char = 92 # unsigned number # Only works right before the quote char. string_escape_char2 = 0 # unsigned number -# Replace tab characters found in string literals with the escape sequence \t instead. -string_replace_tab_chars = true # false/true +# Replace tab characters found in string literals with the escape sequence \t +# instead. +string_replace_tab_chars = true # true/false # Allow interpreting '>=' and '>>=' as part of a template in code like # 'void f(list>=val);'. If true, 'assert(x<0 && y>=3)' will be broken. # Improvements to template detection may make this option obsolete. tok_split_gte = false # true/false +# Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros). +disable_processing_nl_cont = false # true/false + # Specify the marker used in comments to disable processing of part of the # file. # # Default: *INDENT-OFF* -disable_processing_cmt = "" # string +disable_processing_cmt = " *INDENT-OFF*" # string # Specify the marker used in comments to (re)enable processing in a file. # # Default: *INDENT-ON* -enable_processing_cmt = "" # string +enable_processing_cmt = " *INDENT-ON*" # string # Enable parsing of digraphs. enable_digraphs = false # true/false +# Option to allow both disable_processing_cmt and enable_processing_cmt +# strings, if specified, to be interpreted as ECMAScript regular expressions. +# If true, a regex search will be performed within comments according to the +# specified patterns in order to disable/enable processing. +processing_cmt_as_regex = false # true/false + # Add or remove the UTF-8 BOM (recommend 'remove'). -utf8_bom = ignore # ignore/add/remove/force +utf8_bom = ignore # ignore/add/remove/force/not_defined # If the file contains bytes with values between 128 and 255, but is not # UTF-8, then output as UTF-8. @@ -64,184 +74,236 @@ utf8_force = false # true/false # Add or remove space around non-assignment symbolic operators ('+', '/', '%', # '<<', and so forth). -sp_arith = force # ignore/add/remove/force +sp_arith = force # ignore/add/remove/force/not_defined # Add or remove space around arithmetic operators '+' and '-'. # # Overrides sp_arith. -sp_arith_additive = force # ignore/add/remove/force +sp_arith_additive = force # ignore/add/remove/force/not_defined # Add or remove space around assignment operator '=', '+=', etc. -sp_assign = force # ignore/add/remove/force +sp_assign = force # ignore/add/remove/force/not_defined # Add or remove space around '=' in C++11 lambda capture specifications. # # Overrides sp_assign. -sp_cpp_lambda_assign = force # ignore/add/remove/force +sp_cpp_lambda_assign = force # ignore/add/remove/force/not_defined -# Add or remove space after the capture specification in C++11 lambda. -sp_cpp_lambda_paren = ignore # ignore/add/remove/force +# Add or remove space after the capture specification of a C++11 lambda when +# an argument list is present, as in '[] (int x){ ... }'. +sp_cpp_lambda_square_paren = remove # ignore/add/remove/force/not_defined + +# Add or remove space after the capture specification of a C++11 lambda with +# no argument list is present, as in '[] { ... }'. +sp_cpp_lambda_square_brace = force # ignore/add/remove/force/not_defined + +# Add or remove space after the opening parenthesis and before the closing +# parenthesis of a argument list of a C++11 lambda, as in +# '[]( int x ){ ... }'. +sp_cpp_lambda_argument_list = force # ignore/add/remove/force/not_defined + +# Add or remove space after the argument list of a C++11 lambda, as in +# '[](int x) { ... }'. +sp_cpp_lambda_paren_brace = force # ignore/add/remove/force/not_defined + +# Add or remove space between a lambda body and its call operator of an +# immediately invoked lambda, as in '[]( ... ){ ... } ( ... )'. +sp_cpp_lambda_fparen = ignore # ignore/add/remove/force/not_defined # Add or remove space around assignment operator '=' in a prototype. -sp_assign_default = force # ignore/add/remove/force +# +# If set to ignore, use sp_assign. +sp_assign_default = force # ignore/add/remove/force/not_defined # Add or remove space before assignment operator '=', '+=', etc. # # Overrides sp_assign. -sp_before_assign = ignore # ignore/add/remove/force +sp_before_assign = ignore # ignore/add/remove/force/not_defined # Add or remove space after assignment operator '=', '+=', etc. # # Overrides sp_assign. -sp_after_assign = ignore # ignore/add/remove/force +sp_after_assign = ignore # ignore/add/remove/force/not_defined # Add or remove space in 'NS_ENUM ('. -sp_enum_paren = ignore # ignore/add/remove/force +sp_enum_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space around assignment '=' in enum. -sp_enum_assign = add # ignore/add/remove/force +sp_enum_assign = ignore # ignore/add/remove/force/not_defined # Add or remove space before assignment '=' in enum. # # Overrides sp_enum_assign. -sp_enum_before_assign = ignore # ignore/add/remove/force +sp_enum_before_assign = ignore # ignore/add/remove/force/not_defined # Add or remove space after assignment '=' in enum. # # Overrides sp_enum_assign. -sp_enum_after_assign = ignore # ignore/add/remove/force +sp_enum_after_assign = ignore # ignore/add/remove/force/not_defined # Add or remove space around assignment ':' in enum. -sp_enum_colon = force # ignore/add/remove/force +sp_enum_colon = force # ignore/add/remove/force/not_defined # Add or remove space around preprocessor '##' concatenation operator. # # Default: add -sp_pp_concat = force # ignore/add/remove/force +sp_pp_concat = force # ignore/add/remove/force/not_defined # Add or remove space after preprocessor '#' stringify operator. # Also affects the '#@' charizing operator. -sp_pp_stringify = ignore # ignore/add/remove/force +sp_pp_stringify = ignore # ignore/add/remove/force/not_defined # Add or remove space before preprocessor '#' stringify operator # as in '#define x(y) L#y'. -sp_before_pp_stringify = ignore # ignore/add/remove/force +sp_before_pp_stringify = ignore # ignore/add/remove/force/not_defined # Add or remove space around boolean operators '&&' and '||'. -sp_bool = force # ignore/add/remove/force +sp_bool = force # ignore/add/remove/force/not_defined # Add or remove space around compare operator '<', '>', '==', etc. -sp_compare = force # ignore/add/remove/force +sp_compare = force # ignore/add/remove/force/not_defined # Add or remove space inside '(' and ')'. -sp_inside_paren = force # ignore/add/remove/force +sp_inside_paren = force # ignore/add/remove/force/not_defined # Add or remove space between nested parentheses, i.e. '((' vs. ') )'. -sp_paren_paren = force # ignore/add/remove/force +sp_paren_paren = force # ignore/add/remove/force/not_defined # Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('. -sp_cparen_oparen = ignore # ignore/add/remove/force +sp_cparen_oparen = ignore # ignore/add/remove/force/not_defined # Whether to balance spaces inside nested parentheses. sp_balance_nested_parens = false # true/false # Add or remove space between ')' and '{'. -sp_paren_brace = force # ignore/add/remove/force +sp_paren_brace = force # ignore/add/remove/force/not_defined -# Add or remove space between nested braces, i.e. '{{' vs '{ {'. -sp_brace_brace = force # ignore/add/remove/force +# Add or remove space between nested braces, i.e. '{{' vs. '{ {'. +sp_brace_brace = force # ignore/add/remove/force/not_defined # Add or remove space before pointer star '*'. -sp_before_ptr_star = remove # ignore/add/remove/force +sp_before_ptr_star = remove # ignore/add/remove/force/not_defined # 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 +# variable name. If set to ignore, sp_before_ptr_star is used instead. +sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force/not_defined -# Add or remove space between pointer stars '*'. -sp_between_ptr_star = remove # ignore/add/remove/force +# Add or remove space between pointer stars '*', as in 'int ***a;'. +sp_between_ptr_star = remove # ignore/add/remove/force/not_defined # Add or remove space after pointer star '*', if followed by a word. -sp_after_ptr_star = force # ignore/add/remove/force +# +# Overrides sp_type_func. +sp_after_ptr_star = force # ignore/add/remove/force/not_defined # Add or remove space after pointer caret '^', if followed by a word. -sp_after_ptr_block_caret = remove # ignore/add/remove/force +sp_after_ptr_block_caret = remove # ignore/add/remove/force/not_defined # Add or remove space after pointer star '*', if followed by a qualifier. -sp_after_ptr_star_qualifier = force # ignore/add/remove/force +sp_after_ptr_star_qualifier = force # ignore/add/remove/force/not_defined # Add or remove space after a pointer star '*', if followed by a function # prototype or function definition. -sp_after_ptr_star_func = force # ignore/add/remove/force +# +# Overrides sp_after_ptr_star and sp_type_func. +sp_after_ptr_star_func = ignore # ignore/add/remove/force/not_defined + +# Add or remove space after a pointer star '*' in the trailing return of a +# function prototype or function definition. +sp_after_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between the pointer star '*' and the name of the variable +# in a function pointer definition. +sp_ptr_star_func_var = ignore # ignore/add/remove/force/not_defined # Add or remove space after a pointer star '*', if followed by an open -# parenthesis, as in 'void* (*)(). -sp_ptr_star_paren = force # ignore/add/remove/force +# parenthesis, as in 'void* (*)()'. +sp_ptr_star_paren = force # ignore/add/remove/force/not_defined # Add or remove space before a pointer star '*', if followed by a function # prototype or function definition. -sp_before_ptr_star_func = remove # ignore/add/remove/force +sp_before_ptr_star_func = remove # ignore/add/remove/force/not_defined + +# Add or remove space before a pointer star '*' in the trailing return of a +# function prototype or function definition. +sp_before_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined # Add or remove space before a reference sign '&'. -sp_before_byref = remove # ignore/add/remove/force +sp_before_byref = remove # ignore/add/remove/force/not_defined # 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 = remove # ignore/add/remove/force +# variable name. If set to ignore, sp_before_byref is used instead. +sp_before_unnamed_byref = remove # ignore/add/remove/force/not_defined # Add or remove space after reference sign '&', if followed by a word. -sp_after_byref = force # ignore/add/remove/force +# +# Overrides sp_type_func. +sp_after_byref = force # ignore/add/remove/force/not_defined # Add or remove space after a reference sign '&', if followed by a function # prototype or function definition. -sp_after_byref_func = force # ignore/add/remove/force +# +# Overrides sp_after_byref and sp_type_func. +sp_after_byref_func = force # ignore/add/remove/force/not_defined # Add or remove space before a reference sign '&', if followed by a function # prototype or function definition. -sp_before_byref_func = remove # ignore/add/remove/force +sp_before_byref_func = remove # ignore/add/remove/force/not_defined -# Add or remove space between type and word. +# Add or remove space between type and word. In cases where total removal of +# whitespace would be a syntax error, a value of 'remove' is treated the same +# as 'force'. +# +# This also affects some other instances of space following a type that are +# not covered by other options; for example, between the return type and +# parenthesis of a function type template argument, between the type and +# parenthesis of an array parameter, or between 'decltype(...)' and the +# following word. # # Default: force -sp_after_type = force # ignore/add/remove/force +sp_after_type = force # ignore/add/remove/force/not_defined -# Add or remove space between 'decltype(...)' and word. -sp_after_decltype = ignore # ignore/add/remove/force +# Add or remove space between 'decltype(...)' and word, +# brace or function call. +sp_after_decltype = ignore # ignore/add/remove/force/not_defined # (D) Add or remove space before the parenthesis in the D constructs # 'template Foo(' and 'class Foo('. -sp_before_template_paren = ignore # ignore/add/remove/force +sp_before_template_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'template' and '<'. # If set to ignore, sp_before_angle is used. -sp_template_angle = remove # ignore/add/remove/force +sp_template_angle = remove # ignore/add/remove/force/not_defined # Add or remove space before '<'. -sp_before_angle = ignore # ignore/add/remove/force +sp_before_angle = ignore # ignore/add/remove/force/not_defined # Add or remove space inside '<' and '>'. -sp_inside_angle = force # ignore/add/remove/force +sp_inside_angle = force # ignore/add/remove/force/not_defined + +# Add or remove space inside '<>'. +sp_inside_angle_empty = ignore # ignore/add/remove/force/not_defined # Add or remove space between '>' and ':'. -sp_angle_colon = ignore # ignore/add/remove/force +sp_angle_colon = ignore # ignore/add/remove/force/not_defined -# Add or remove space after '<>'. -sp_after_angle = ignore # ignore/add/remove/force +# Add or remove space after '>'. +sp_after_angle = ignore # ignore/add/remove/force/not_defined # Add or remove space between '>' and '(' as found in 'new List(foo);'. -sp_angle_paren = ignore # ignore/add/remove/force +sp_angle_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between '>' and '()' as found in 'new List();'. -sp_angle_paren_empty = ignore # ignore/add/remove/force +sp_angle_paren_empty = ignore # ignore/add/remove/force/not_defined # Add or remove space between '>' and a word as in 'List m;' or # 'template static ...'. -sp_angle_word = ignore # ignore/add/remove/force +sp_angle_word = ignore # ignore/add/remove/force/not_defined # Add or remove space between '>' and '>' in '>>' (template stuff). # # Default: add -sp_angle_shift = add # ignore/add/remove/force +sp_angle_shift = add # ignore/add/remove/force/not_defined # (C++11) Permit removal of the space between '>>' in 'foo >'. Note # that sp_angle_shift cannot remove the space without this option. @@ -249,492 +311,724 @@ sp_permit_cpp11_shift = false # true/false # Add or remove space before '(' of control statements ('if', 'for', 'switch', # 'while', etc.). -sp_before_sparen = ignore # ignore/add/remove/force +sp_before_sparen = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside '(' and ')' of control statements. -sp_inside_sparen = ignore # ignore/add/remove/force +# Add or remove space inside '(' and ')' of control statements other than +# 'for'. +sp_inside_sparen = ignore # ignore/add/remove/force/not_defined -# Add or remove space after '(' of control statements. +# Add or remove space after '(' of control statements other than 'for'. # # Overrides sp_inside_sparen. -sp_inside_sparen_open = ignore # ignore/add/remove/force +sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined -# Add or remove space before ')' of control statements. +# Add or remove space before ')' of control statements other than 'for'. # # Overrides sp_inside_sparen. -sp_inside_sparen_close = ignore # ignore/add/remove/force +sp_inside_sparen_close = ignore # ignore/add/remove/force/not_defined + +# Add or remove space inside '(' and ')' of 'for' statements. +sp_inside_for = ignore # ignore/add/remove/force/not_defined + +# Add or remove space after '(' of 'for' statements. +# +# Overrides sp_inside_for. +sp_inside_for_open = ignore # ignore/add/remove/force/not_defined + +# Add or remove space before ')' of 'for' statements. +# +# Overrides sp_inside_for. +sp_inside_for_close = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between '((' or '))' of control statements. +sp_sparen_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space after ')' of control statements. -sp_after_sparen = ignore # ignore/add/remove/force +sp_after_sparen = ignore # ignore/add/remove/force/not_defined -# Add or remove space between ')' and '{' of of control statements. -sp_sparen_brace = ignore # ignore/add/remove/force +# Add or remove space between ')' and '{' of control statements. +sp_sparen_brace = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between 'do' and '{'. +sp_do_brace_open = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between '}' and 'while'. +sp_brace_close_while = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between 'while' and '('. Overrides sp_before_sparen. +sp_while_paren_open = ignore # ignore/add/remove/force/not_defined # (D) Add or remove space between 'invariant' and '('. -sp_invariant_paren = ignore # ignore/add/remove/force +sp_invariant_paren = ignore # ignore/add/remove/force/not_defined # (D) Add or remove space after the ')' in 'invariant (C) c'. -sp_after_invariant_paren = ignore # ignore/add/remove/force +sp_after_invariant_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space before empty statement ';' on 'if', 'for' and 'while'. -sp_special_semi = ignore # ignore/add/remove/force +sp_special_semi = ignore # ignore/add/remove/force/not_defined # Add or remove space before ';'. # # Default: remove -sp_before_semi = remove # ignore/add/remove/force +sp_before_semi = remove # ignore/add/remove/force/not_defined # Add or remove space before ';' in non-empty 'for' statements. -sp_before_semi_for = ignore # ignore/add/remove/force +sp_before_semi_for = ignore # ignore/add/remove/force/not_defined -# 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 before a semicolon of an empty left part of a for +# statement, as in 'for ( ; ; )'. +sp_before_semi_for_empty = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between the semicolons of an empty middle part of a for +# statement, as in 'for ( ; ; )'. +sp_between_semi_for_empty = ignore # ignore/add/remove/force/not_defined # Add or remove space after ';', except when followed by a comment. # # Default: add -sp_after_semi = add # ignore/add/remove/force +sp_after_semi = add # ignore/add/remove/force/not_defined # Add or remove space after ';' in non-empty 'for' statements. # # Default: force -sp_after_semi_for = force # ignore/add/remove/force +sp_after_semi_for = force # ignore/add/remove/force/not_defined # Add or remove space after the final semicolon of an empty part of a for # statement, as in 'for ( ; ; )'. -sp_after_semi_for_empty = ignore # ignore/add/remove/force +sp_after_semi_for_empty = ignore # ignore/add/remove/force/not_defined # Add or remove space before '[' (except '[]'). -sp_before_square = ignore # ignore/add/remove/force +sp_before_square = ignore # ignore/add/remove/force/not_defined -# Add or remove space before '[]'. -sp_before_squares = ignore # ignore/add/remove/force - -# Add or remove space before C++17 structured bindings. -sp_cpp_before_struct_binding = ignore # ignore/add/remove/force - -# Add or remove space inside a non-empty '[' and ']'. -sp_inside_square = ignore # ignore/add/remove/force - -# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'. -sp_after_comma = ignore # ignore/add/remove/force - -# Add or remove space before ','. +# Add or remove space before '[' for a variable definition. # # Default: remove -sp_before_comma = remove # ignore/add/remove/force +sp_before_vardef_square = remove # ignore/add/remove/force/not_defined + +# Add or remove space before '[' for asm block. +sp_before_square_asm_block = ignore # ignore/add/remove/force/not_defined + +# Add or remove space before '[]'. +sp_before_squares = ignore # ignore/add/remove/force/not_defined + +# Add or remove space before C++17 structured bindings. +sp_cpp_before_struct_binding = ignore # ignore/add/remove/force/not_defined + +# Add or remove space inside a non-empty '[' and ']'. +sp_inside_square = ignore # ignore/add/remove/force/not_defined + +# Add or remove space inside '[]'. +sp_inside_square_empty = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and +# ']'. If set to ignore, sp_inside_square is used. +sp_inside_square_oc_array = ignore # ignore/add/remove/force/not_defined + +# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'. +sp_after_comma = ignore # ignore/add/remove/force/not_defined + +# Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'. +# +# Default: remove +sp_before_comma = remove # ignore/add/remove/force/not_defined + +# (C#) Add or remove space between ',' and ']' in multidimensional array type +# like 'int[,,]'. +sp_after_mdatype_commas = ignore # ignore/add/remove/force/not_defined + +# (C#) Add or remove space between '[' and ',' in multidimensional array type +# like 'int[,,]'. +sp_before_mdatype_commas = ignore # ignore/add/remove/force/not_defined + +# (C#) Add or remove space between ',' in multidimensional array type +# like 'int[,,]'. +sp_between_mdatype_commas = ignore # ignore/add/remove/force/not_defined # Add or remove space between an open parenthesis and comma, # i.e. '(,' vs. '( ,'. # # Default: force -sp_paren_comma = force # ignore/add/remove/force +sp_paren_comma = force # ignore/add/remove/force/not_defined + +# Add or remove space after the variadic '...' when preceded by a +# non-punctuator. +# The value REMOVE will be overriden with FORCE +sp_after_ellipsis = add # ignore/add/remove/force/not_defined # Add or remove space before the variadic '...' when preceded by a # non-punctuator. -sp_before_ellipsis = add # ignore/add/remove/force +# The value REMOVE will be overriden with FORCE +sp_before_ellipsis = add # ignore/add/remove/force/not_defined # Add or remove space between a type and '...'. -sp_type_ellipsis = add # ignore/add/remove/force +sp_type_ellipsis = add # ignore/add/remove/force/not_defined + +# Add or remove space between a '*' and '...'. +sp_ptr_type_ellipsis = ignore # ignore/add/remove/force/not_defined + +# (D) Add or remove space between a type and '?'. +sp_type_question = ignore # ignore/add/remove/force/not_defined # Add or remove space between ')' and '...'. -sp_paren_ellipsis = add # ignore/add/remove/force +sp_paren_ellipsis = add # ignore/add/remove/force/not_defined + +# Add or remove space between '&&' and '...'. +sp_byref_ellipsis = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between ')' and a qualifier such as 'const'. +sp_paren_qualifier = add # ignore/add/remove/force/not_defined + +# Add or remove space between ')' and 'noexcept'. +sp_paren_noexcept = add # ignore/add/remove/force/not_defined # Add or remove space after class ':'. -sp_after_class_colon = add # ignore/add/remove/force +sp_after_class_colon = add # ignore/add/remove/force/not_defined # Add or remove space before class ':'. -sp_before_class_colon = add # ignore/add/remove/force +sp_before_class_colon = add # ignore/add/remove/force/not_defined # Add or remove space after class constructor ':'. -sp_after_constr_colon = add # ignore/add/remove/force +# +# Default: add +sp_after_constr_colon = add # ignore/add/remove/force/not_defined # Add or remove space before class constructor ':'. -sp_before_constr_colon = remove # ignore/add/remove/force +# +# Default: add +sp_before_constr_colon = remove # ignore/add/remove/force/not_defined # Add or remove space before case ':'. # # Default: remove -sp_before_case_colon = remove # ignore/add/remove/force +sp_before_case_colon = remove # ignore/add/remove/force/not_defined # Add or remove space between 'operator' and operator sign. -sp_after_operator = ignore # ignore/add/remove/force +sp_after_operator = ignore # ignore/add/remove/force/not_defined # Add or remove space between the operator symbol and the open parenthesis, as # in 'operator ++('. -sp_after_operator_sym = ignore # ignore/add/remove/force +sp_after_operator_sym = ignore # ignore/add/remove/force/not_defined # Overrides sp_after_operator_sym when the operator has no arguments, as in # 'operator *()'. -sp_after_operator_sym_empty = ignore # ignore/add/remove/force +sp_after_operator_sym_empty = ignore # ignore/add/remove/force/not_defined # 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 +sp_after_cast = ignore # ignore/add/remove/force/not_defined # Add or remove spaces inside cast parentheses. -sp_inside_paren_cast = ignore # ignore/add/remove/force +sp_inside_paren_cast = ignore # ignore/add/remove/force/not_defined # Add or remove space between the type and open parenthesis in a C++ cast, # i.e. 'int(exp)' vs. 'int (exp)'. -sp_cpp_cast_paren = remove # ignore/add/remove/force +sp_cpp_cast_paren = remove # ignore/add/remove/force/not_defined # Add or remove space between 'sizeof' and '('. -sp_sizeof_paren = remove # ignore/add/remove/force +sp_sizeof_paren = remove # ignore/add/remove/force/not_defined # Add or remove space between 'sizeof' and '...'. -sp_sizeof_ellipsis = force # ignore/add/remove/force +sp_sizeof_ellipsis = force # ignore/add/remove/force/not_defined # Add or remove space between 'sizeof...' and '('. -sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force +sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between '...' and a parameter pack. +sp_ellipsis_parameter_pack = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between a parameter pack and '...'. +sp_parameter_pack_ellipsis = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'decltype' and '('. -sp_decltype_paren = ignore # ignore/add/remove/force +sp_decltype_paren = ignore # ignore/add/remove/force/not_defined # (Pawn) Add or remove space after the tag keyword. -sp_after_tag = ignore # ignore/add/remove/force +sp_after_tag = ignore # ignore/add/remove/force/not_defined # Add or remove space inside enum '{' and '}'. -sp_inside_braces_enum = ignore # ignore/add/remove/force +sp_inside_braces_enum = ignore # ignore/add/remove/force/not_defined # Add or remove space inside struct/union '{' and '}'. -sp_inside_braces_struct = ignore # ignore/add/remove/force +sp_inside_braces_struct = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}' +sp_inside_braces_oc_dict = ignore # ignore/add/remove/force/not_defined # Add or remove space after open brace in an unnamed temporary -# direct-list-initialization. -sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force +# direct-list-initialization +# if statement is a brace_init_lst +# works only if sp_brace_brace is set to ignore. +sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined # Add or remove space before close brace in an unnamed temporary -# direct-list-initialization. -sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force +# direct-list-initialization +# if statement is a brace_init_lst +# works only if sp_brace_brace is set to ignore. +sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside an unnamed temporary direct-list-initialization. -sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force +# Add or remove space inside an unnamed temporary direct-list-initialization +# if statement is a brace_init_lst +# works only if sp_brace_brace is set to ignore +# works only if sp_before_type_brace_init_lst_close is set to ignore. +sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined # Add or remove space inside '{' and '}'. -sp_inside_braces = ignore # ignore/add/remove/force +sp_inside_braces = ignore # ignore/add/remove/force/not_defined # Add or remove space inside '{}'. -sp_inside_braces_empty = ignore # ignore/add/remove/force +sp_inside_braces_empty = ignore # ignore/add/remove/force/not_defined + +# Add or remove space around trailing return operator '->'. +sp_trailing_return = ignore # ignore/add/remove/force/not_defined # 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 +sp_type_func = ignore # ignore/add/remove/force/not_defined # Add or remove space between type and open brace of an unnamed temporary # direct-list-initialization. -sp_type_brace_init_lst = force # ignore/add/remove/force +sp_type_brace_init_lst = force # ignore/add/remove/force/not_defined # Add or remove space between function name and '(' on function declaration. -sp_func_proto_paren = ignore # ignore/add/remove/force +sp_func_proto_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between function name and '()' on function declaration # without parameters. -sp_func_proto_paren_empty = ignore # ignore/add/remove/force +sp_func_proto_paren_empty = ignore # ignore/add/remove/force/not_defined -# Add or remove space between function name and '(' on function definition. -sp_func_def_paren = ignore # ignore/add/remove/force +# Add or remove space between function name and '(' with a typedef specifier. +sp_func_type_paren = ignore # ignore/add/remove/force/not_defined + +# Add or remove space between alias name and '(' of a non-pointer function type typedef. +sp_func_def_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between function name and '()' on function definition # without parameters. -sp_func_def_paren_empty = ignore # ignore/add/remove/force +sp_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined # Add or remove space inside empty function '()'. -sp_inside_fparens = remove # ignore/add/remove/force +# Overrides sp_after_angle unless use_sp_after_angle_always is set to true. +sp_inside_fparens = remove # ignore/add/remove/force/not_defined # Add or remove space inside function '(' and ')'. -sp_inside_fparen = ignore # ignore/add/remove/force +sp_inside_fparen = ignore # ignore/add/remove/force/not_defined # Add or remove space inside the first parentheses in a function type, as in # 'void (*x)(...)'. -sp_inside_tparen = ignore # ignore/add/remove/force +sp_inside_tparen = ignore # ignore/add/remove/force/not_defined # Add or remove space between the ')' and '(' in a function type, as in # 'void (*x)(...)'. -sp_after_tparen_close = ignore # ignore/add/remove/force +sp_after_tparen_close = ignore # ignore/add/remove/force/not_defined # Add or remove space between ']' and '(' when part of a function call. -sp_square_fparen = ignore # ignore/add/remove/force +sp_square_fparen = ignore # ignore/add/remove/force/not_defined # Add or remove space between ')' and '{' of function. -sp_fparen_brace = ignore # ignore/add/remove/force +sp_fparen_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove space between ')' and '{' of s function call in object +# Add or remove space between ')' and '{' of a function call in object # initialization. # # Overrides sp_fparen_brace. -sp_fparen_brace_initializer = ignore # ignore/add/remove/force +sp_fparen_brace_initializer = ignore # ignore/add/remove/force/not_defined # (Java) Add or remove space between ')' and '{{' of double brace initializer. -sp_fparen_dbrace = ignore # ignore/add/remove/force +sp_fparen_dbrace = ignore # ignore/add/remove/force/not_defined # Add or remove space between function name and '(' on function calls. -sp_func_call_paren = ignore # ignore/add/remove/force +sp_func_call_paren = ignore # ignore/add/remove/force/not_defined # 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 +# parameters. If set to ignore (the default), sp_func_call_paren is used. +sp_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined # Add or remove space between the user function name and '(' on function # calls. You need to set a keyword to be a user function in the config file, # like: # set func_call_user tr _ i18n -sp_func_call_user_paren = ignore # ignore/add/remove/force +sp_func_call_user_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space inside user function '(' and ')'. -sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force +sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force/not_defined # Add or remove space between nested parentheses with user functions, # i.e. '((' vs. '( ('. -sp_func_call_user_paren_paren = ignore # ignore/add/remove/force +sp_func_call_user_paren_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between a constructor/destructor and the open # parenthesis. -sp_func_class_paren = ignore # ignore/add/remove/force +sp_func_class_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between a constructor without parameters or destructor # and '()'. -sp_func_class_paren_empty = ignore # ignore/add/remove/force +sp_func_class_paren_empty = ignore # ignore/add/remove/force/not_defined + +# Add or remove space after 'return'. +# +# Default: force +sp_return = force # ignore/add/remove/force/not_defined # Add or remove space between 'return' and '('. -sp_return_paren = ignore # ignore/add/remove/force +sp_return_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'return' and '{'. -sp_return_brace = force # ignore/add/remove/force +sp_return_brace = force # ignore/add/remove/force/not_defined # Add or remove space between '__attribute__' and '('. -sp_attribute_paren = ignore # ignore/add/remove/force +sp_attribute_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'defined' and '(' in '#if defined (FOO)'. -sp_defined_paren = ignore # ignore/add/remove/force +sp_defined_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'throw' and '(' in 'throw (something)'. -sp_throw_paren = ignore # ignore/add/remove/force +sp_throw_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'throw' and anything other than '(' as in # '@throw [...];'. -sp_after_throw = ignore # ignore/add/remove/force +sp_after_throw = ignore # ignore/add/remove/force/not_defined # 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 +sp_catch_paren = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space between '@catch' and '(' +# in '@catch (something) { }'. If set to ignore, sp_catch_paren is used. +sp_oc_catch_paren = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space before Objective-C protocol list +# as in '@protocol Protocol' or '@interface MyClass : NSObject'. +sp_before_oc_proto_list = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space between class name and '(' +# in '@interface className(categoryName):BaseClass' +sp_oc_classname_paren = ignore # ignore/add/remove/force/not_defined # (D) Add or remove space between 'version' and '(' # in 'version (something) { }'. If set to ignore, sp_before_sparen is used. -sp_version_paren = ignore # ignore/add/remove/force +sp_version_paren = ignore # ignore/add/remove/force/not_defined # (D) Add or remove space between 'scope' and '(' # in 'scope (something) { }'. If set to ignore, sp_before_sparen is used. -sp_scope_paren = ignore # ignore/add/remove/force +sp_scope_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'super' and '(' in 'super (something)'. # # Default: remove -sp_super_paren = remove # ignore/add/remove/force +sp_super_paren = remove # ignore/add/remove/force/not_defined # Add or remove space between 'this' and '(' in 'this (something)'. # # Default: remove -sp_this_paren = remove # ignore/add/remove/force +sp_this_paren = remove # ignore/add/remove/force/not_defined # Add or remove space between a macro name and its definition. -sp_macro = ignore # ignore/add/remove/force +sp_macro = ignore # ignore/add/remove/force/not_defined # Add or remove space between a macro function ')' and its definition. -sp_macro_func = ignore # ignore/add/remove/force +sp_macro_func = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'else' and '{' if on the same line. -sp_else_brace = ignore # ignore/add/remove/force +sp_else_brace = ignore # ignore/add/remove/force/not_defined # Add or remove space between '}' and 'else' if on the same line. -sp_brace_else = ignore # ignore/add/remove/force +sp_brace_else = ignore # ignore/add/remove/force/not_defined # Add or remove space between '}' and the name of a typedef on the same line. -sp_brace_typedef = ignore # ignore/add/remove/force +sp_brace_typedef = ignore # ignore/add/remove/force/not_defined # Add or remove space before the '{' of a 'catch' statement, if the '{' and # 'catch' are on the same line, as in 'catch (decl) {'. -sp_catch_brace = ignore # ignore/add/remove/force +sp_catch_brace = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space before the '{' of a '@catch' statement, if the '{' +# and '@catch' are on the same line, as in '@catch (decl) {'. +# If set to ignore, sp_catch_brace is used. +sp_oc_catch_brace = ignore # ignore/add/remove/force/not_defined # Add or remove space between '}' and 'catch' if on the same line. -sp_brace_catch = ignore # ignore/add/remove/force +sp_brace_catch = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space between '}' and '@catch' if on the same line. +# If set to ignore, sp_brace_catch is used. +sp_oc_brace_catch = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'finally' and '{' if on the same line. -sp_finally_brace = ignore # ignore/add/remove/force +sp_finally_brace = ignore # ignore/add/remove/force/not_defined # Add or remove space between '}' and 'finally' if on the same line. -sp_brace_finally = ignore # ignore/add/remove/force +sp_brace_finally = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'try' and '{' if on the same line. -sp_try_brace = ignore # ignore/add/remove/force +sp_try_brace = ignore # ignore/add/remove/force/not_defined # Add or remove space between get/set and '{' if on the same line. -sp_getset_brace = ignore # ignore/add/remove/force +sp_getset_brace = ignore # ignore/add/remove/force/not_defined # Add or remove space between a variable and '{' for C++ uniform # initialization. -# -# Default: add -sp_word_brace = add # ignore/add/remove/force +sp_word_brace_init_lst = add # ignore/add/remove/force/not_defined # Add or remove space between a variable and '{' for a namespace. # # Default: add -sp_word_brace_ns = add # ignore/add/remove/force +sp_word_brace_ns = add # ignore/add/remove/force/not_defined # Add or remove space before the '::' operator. -sp_before_dc = ignore # ignore/add/remove/force +sp_before_dc = ignore # ignore/add/remove/force/not_defined # Add or remove space after the '::' operator. -sp_after_dc = ignore # ignore/add/remove/force +sp_after_dc = ignore # ignore/add/remove/force/not_defined + +# (D) Add or remove around the D named array initializer ':' operator. +sp_d_array_colon = ignore # ignore/add/remove/force/not_defined # Add or remove space after the '!' (not) unary operator. # # Default: remove -sp_not = remove # ignore/add/remove/force +sp_not = remove # ignore/add/remove/force/not_defined # Add or remove space after the '~' (invert) unary operator. # # Default: remove -sp_inv = remove # ignore/add/remove/force +sp_inv = remove # ignore/add/remove/force/not_defined # Add or remove space after the '&' (address-of) unary operator. This does not # affect the spacing after a '&' that is part of a type. # # Default: remove -sp_addr = remove # ignore/add/remove/force +sp_addr = remove # ignore/add/remove/force/not_defined # Add or remove space around the '.' or '->' operators. # # Default: remove -sp_member = remove # ignore/add/remove/force +sp_member = remove # ignore/add/remove/force/not_defined # Add or remove space after the '*' (dereference) unary operator. This does # not affect the spacing after a '*' that is part of a type. # # Default: remove -sp_deref = remove # ignore/add/remove/force +sp_deref = remove # ignore/add/remove/force/not_defined # Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. # # Default: remove -sp_sign = remove # ignore/add/remove/force +sp_sign = remove # ignore/add/remove/force/not_defined # Add or remove space between '++' and '--' the word to which it is being # applied, as in '(--x)' or 'y++;'. # # Default: remove -sp_incdec = remove # ignore/add/remove/force +sp_incdec = remove # ignore/add/remove/force/not_defined # 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 +sp_before_nl_cont = add # ignore/add/remove/force/not_defined + +# (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;' +# or '+(int) bar;'. +sp_after_oc_scope = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space after the colon in message specs, +# i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'. +sp_after_oc_colon = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space before the colon in message specs, +# i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'. +sp_before_oc_colon = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space after the colon in immutable dictionary expression +# 'NSDictionary *test = @{@"foo" :@"bar"};'. +sp_after_oc_dict_colon = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space before the colon in immutable dictionary expression +# 'NSDictionary *test = @{@"foo" :@"bar"};'. +sp_before_oc_dict_colon = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space after the colon in message specs, +# i.e. '[object setValue:1];' vs. '[object setValue: 1];'. +sp_after_send_oc_colon = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space before the colon in message specs, +# i.e. '[object setValue:1];' vs. '[object setValue :1];'. +sp_before_send_oc_colon = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space after the (type) in message specs, +# i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'. +sp_after_oc_type = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space after the first (type) in message specs, +# i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'. +sp_after_oc_return_type = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space between '@selector' and '(', +# i.e. '@selector(msgName)' vs. '@selector (msgName)'. +# Also applies to '@protocol()' constructs. +sp_after_oc_at_sel = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space between '@selector(x)' and the following word, +# i.e. '@selector(foo) a:' vs. '@selector(foo)a:'. +sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space inside '@selector' parentheses, +# i.e. '@selector(foo)' vs. '@selector( foo )'. +# Also applies to '@protocol()' constructs. +sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space before a block pointer caret, +# i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'. +sp_before_oc_block_caret = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space after a block pointer caret, +# i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'. +sp_after_oc_block_caret = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space between the receiver and selector in a message, +# as in '[receiver selector ...]'. +sp_after_oc_msg_receiver = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space after '@property'. +sp_after_oc_property = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove space between '@synchronized' and the open parenthesis, +# i.e. '@synchronized(foo)' vs. '@synchronized (foo)'. +sp_after_oc_synchronized = ignore # ignore/add/remove/force/not_defined # Add or remove space around the ':' in 'b ? t : f'. -sp_cond_colon = force # ignore/add/remove/force +sp_cond_colon = force # ignore/add/remove/force/not_defined # Add or remove space before the ':' in 'b ? t : f'. # # Overrides sp_cond_colon. -sp_cond_colon_before = ignore # ignore/add/remove/force +sp_cond_colon_before = ignore # ignore/add/remove/force/not_defined # Add or remove space after the ':' in 'b ? t : f'. # # Overrides sp_cond_colon. -sp_cond_colon_after = ignore # ignore/add/remove/force +sp_cond_colon_after = ignore # ignore/add/remove/force/not_defined # Add or remove space around the '?' in 'b ? t : f'. -sp_cond_question = force # ignore/add/remove/force +sp_cond_question = force # ignore/add/remove/force/not_defined # Add or remove space before the '?' in 'b ? t : f'. # # Overrides sp_cond_question. -sp_cond_question_before = ignore # ignore/add/remove/force +sp_cond_question_before = ignore # ignore/add/remove/force/not_defined # Add or remove space after the '?' in 'b ? t : f'. # # Overrides sp_cond_question. -sp_cond_question_after = ignore # ignore/add/remove/force +sp_cond_question_after = ignore # ignore/add/remove/force/not_defined # In the abbreviated ternary form '(a ?: b)', add or remove space between '?' # and ':'. # # Overrides all other sp_cond_* options. -sp_cond_ternary_short = ignore # ignore/add/remove/force +sp_cond_ternary_short = ignore # ignore/add/remove/force/not_defined # Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make # sense here. -sp_case_label = ignore # ignore/add/remove/force +sp_case_label = ignore # ignore/add/remove/force/not_defined # (D) Add or remove space around the D '..' operator. -sp_range = ignore # ignore/add/remove/force +sp_range = ignore # ignore/add/remove/force/not_defined # Add or remove space after ':' in a Java/C++11 range-based 'for', -# as in 'for (Type var : expr)'. -sp_after_for_colon = force # ignore/add/remove/force +# as in 'for (Type var : expr)'. +sp_after_for_colon = force # ignore/add/remove/force/not_defined # Add or remove space before ':' in a Java/C++11 range-based 'for', -# as in 'for (Type var : expr)'. -sp_before_for_colon = force # ignore/add/remove/force +# as in 'for (Type var : expr)'. +sp_before_for_colon = force # ignore/add/remove/force/not_defined -# (D) Add or remove space between 'extern' and '(' as in 'extern (C)'. -sp_extern_paren = ignore # ignore/add/remove/force +# (D) Add or remove space between 'extern' and '(' as in 'extern (C)'. +sp_extern_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space after the opening of a C++ comment, -# i.e. '// A' vs. '//A'. -sp_cmt_cpp_start = ignore # ignore/add/remove/force +# Add or remove space after the opening of a C++ comment, as in '// A'. +sp_cmt_cpp_start = ignore # ignore/add/remove/force/not_defined -# If true, space is added with sp_cmt_cpp_start will be added after doxygen +# Add or remove space in a C++ region marker comment, as in '// BEGIN'. +# A region marker is defined as a comment which is not preceded by other text +# (i.e. the comment is the first non-whitespace on the line), and which starts +# with either 'BEGIN' or 'END'. +# +# Overrides sp_cmt_cpp_start. +sp_cmt_cpp_region = ignore # ignore/add/remove/force/not_defined + +# If true, space added with sp_cmt_cpp_start will be added after Doxygen # sequences like '///', '///<', '//!' and '//!<'. sp_cmt_cpp_doxygen = false # true/false -# If true, space is added with sp_cmt_cpp_start will be added after Qt -# translator or meta-data comments like '//:', '//=', and '//~'. +# If true, space added with sp_cmt_cpp_start will be added after Qt translator +# or meta-data comments like '//:', '//=', and '//~'. sp_cmt_cpp_qttr = false # true/false # Add or remove space between #else or #endif and a trailing comment. -sp_endif_cmt = ignore # ignore/add/remove/force +sp_endif_cmt = ignore # ignore/add/remove/force/not_defined # Add or remove space after 'new', 'delete' and 'delete[]'. -sp_after_new = ignore # ignore/add/remove/force +sp_after_new = ignore # ignore/add/remove/force/not_defined # Add or remove space between 'new' and '(' in 'new()'. -sp_between_new_paren = ignore # ignore/add/remove/force +sp_between_new_paren = ignore # ignore/add/remove/force/not_defined # Add or remove space between ')' and type in 'new(foo) BAR'. -sp_after_newop_paren = force # ignore/add/remove/force +sp_after_newop_paren = force # ignore/add/remove/force/not_defined # Add or remove space inside parenthesis of the new operator # as in 'new(foo) BAR'. -sp_inside_newop_paren = force # ignore/add/remove/force +sp_inside_newop_paren = force # ignore/add/remove/force/not_defined # Add or remove space after the open parenthesis of the new operator, # as in 'new(foo) BAR'. # # Overrides sp_inside_newop_paren. -sp_inside_newop_paren_open = force # ignore/add/remove/force +sp_inside_newop_paren_open = force # ignore/add/remove/force/not_defined # Add or remove space before the close parenthesis of the new operator, # as in 'new(foo) BAR'. # # Overrides sp_inside_newop_paren. -sp_inside_newop_paren_close = force # ignore/add/remove/force +sp_inside_newop_paren_close = force # ignore/add/remove/force/not_defined -# Add or remove space before a trailing or embedded comment. -sp_before_tr_emb_cmt = ignore # ignore/add/remove/force +# Add or remove space before a trailing comment. +sp_before_tr_cmt = ignore # ignore/add/remove/force/not_defined -# Number of spaces before a trailing or embedded comment. -sp_num_before_tr_emb_cmt = 0 # unsigned number +# Number of spaces before a trailing comment. +sp_num_before_tr_cmt = 0 # unsigned number + +# Add or remove space before an embedded comment. +# +# Default: force +sp_before_emb_cmt = force # ignore/add/remove/force/not_defined + +# Number of spaces before an embedded comment. +# +# Default: 1 +sp_num_before_emb_cmt = 1 # unsigned number + +# Add or remove space after an embedded comment. +# +# Default: force +sp_after_emb_cmt = force # ignore/add/remove/force/not_defined + +# Number of spaces after an embedded comment. +# +# Default: 1 +sp_num_after_emb_cmt = 1 # unsigned number # (Java) Add or remove space between an annotation and the open parenthesis. -sp_annotation_paren = ignore # ignore/add/remove/force +sp_annotation_paren = ignore # ignore/add/remove/force/not_defined # If true, vbrace tokens are dropped to the previous token and skipped. sp_skip_vbrace_tokens = false # true/false # Add or remove space after 'noexcept'. -sp_after_noexcept = force # ignore/add/remove/force +sp_after_noexcept = force # ignore/add/remove/force/not_defined + +# Add or remove space after '_'. +sp_vala_after_translation = ignore # ignore/add/remove/force/not_defined # If true, a is inserted after #define. force_tab_after_define = false # true/false @@ -748,9 +1042,9 @@ force_tab_after_define = false # true/false # Default: 8 indent_columns = 4 # unsigned number -# The continuation indent. If non-zero, this overrides the indent of '(' and -# '=' continuation indents. Negative values are OK; negative value is absolute -# and not increased for each '(' level. +# The continuation indent. If non-zero, this overrides the indent of '(', '[' +# and '=' continuation indents. Negative values are OK; negative value is +# absolute and not increased for each '(' or '[' level. # # For FreeBSD, this is set to 4. indent_continue = 4 # number @@ -803,13 +1097,20 @@ indent_braces_no_class = false # true/false indent_braces_no_struct = false # true/false # Whether to indent based on the size of the brace parent, -# i.e. 'if' → 3 spaces, 'for' → 4 spaces, etc. +# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc. indent_brace_parent = false # true/false # Whether to indent based on the open parenthesis instead of the open brace # in '({\n'. indent_paren_open_brace = false # true/false +# (C#) Whether to indent the brace of a C# delegate by another level. +indent_cs_delegate_brace = false # true/false + +# (C#) Whether to indent a C# delegate (to handle delegates with no brace) by +# another level. +indent_cs_delegate_body = false # true/false + # Whether to indent the body of a 'namespace'. indent_namespace = true # true/false @@ -818,6 +1119,7 @@ indent_namespace = true # true/false indent_namespace_single_indent = false # true/false # The number of spaces to indent a namespace block. +# If set to zero, use the value indent_columns indent_namespace_level = 0 # unsigned number # If the body of the namespace is longer than this number, it won't be @@ -830,6 +1132,12 @@ indent_extern = true # true/false # Whether the 'class' body is indented. indent_class = true # true/false +# Additional indent before the leading base class colon. +# Negative values decrease indent down to the first column. +# Requires a newline break before colon (see pos_class_colon +# and nl_class_colon) +indent_before_class_colon = 0 # number + # Whether to indent the stuff after a leading base class colon. indent_class_colon = false # true/false @@ -840,11 +1148,16 @@ indent_class_on_colon = false # true/false # Whether to indent the stuff after a leading class initializer colon. indent_constr_colon = false # true/false -# Virtual indent from the ':' for member initializers. +# Virtual indent from the ':' for leading member initializers. # # Default: 2 indent_ctor_init_leading = 2 # unsigned number +# Virtual indent from the ':' for following member initializers. +# +# Default: 2 +indent_ctor_init_following = 2 # unsigned number + # Additional indent for constructor initializer list. # Negative values decrease indent down to the first column. indent_ctor_init = 0 # number @@ -855,8 +1168,8 @@ indent_else_if = false # true/false # Amount to indent variable declarations after a open brace. # -# <0: Relative -# ≥0: Absolute +# <0: Relative +# >=0: Absolute indent_var_def_blk = 0 # number # Whether to indent continued variable declarations instead of aligning. @@ -873,19 +1186,30 @@ indent_func_def_force_col1 = false # true/false # rather than aligning parameters under the open parenthesis. indent_func_call_param = true # true/false -# Same as indent_func_call_param, but for function definitions. +# Whether to indent continued function definition parameters one indent level, +# rather than aligning parameters under the open parenthesis. indent_func_def_param = true # true/false -# Same as indent_func_call_param, but for function prototypes. +# for function definitions, only if indent_func_def_param is false +# Allows to align params when appropriate and indent them when not +# behave as if it was true if paren position is more than this value +# if paren position is more than the option value +indent_func_def_param_paren_pos_threshold = 0 # unsigned number + +# Whether to indent continued function call prototype one indent level, +# rather than aligning parameters under the open parenthesis. indent_func_proto_param = true # true/false -# Same as indent_func_call_param, but for class declarations. +# Whether to indent continued function call declaration one indent level, +# rather than aligning parameters under the open parenthesis. indent_func_class_param = true # true/false -# Same as indent_func_call_param, but for class variable constructors. +# Whether to indent continued class variable constructors one indent level, +# rather than aligning parameters under the open parenthesis. indent_func_ctor_var_param = true # true/false -# Same as indent_func_call_param, but for template parameter lists. +# Whether to indent continued template parameter list one indent level, +# rather than aligning parameters under the open parenthesis. indent_template_param = true # true/false # Double the indent for indent_func_xxx_param options. @@ -900,6 +1224,16 @@ indent_func_const = 0 # unsigned number # prototype. indent_func_throw = 0 # unsigned number +# How to indent within a macro followed by a brace on the same line +# This allows reducing the indent in macros that have (for example) +# `do { ... } while (0)` blocks bracketing them. +# +# true: add an indent for the brace on the same line as the macro +# false: do not add an indent for the brace on the same line as the macro +# +# Default: true +indent_macro_brace = true # true/false + # The number of spaces to indent a continued '->' or '.'. # Usually set to 0, 1, or indent_columns. indent_member = 4 # unsigned number @@ -909,15 +1243,35 @@ indent_member = 4 # unsigned number indent_member_single = true # true/false # Spaces to indent single line ('//') comments on lines before code. -indent_sing_line_comments = 0 # unsigned number +indent_single_line_comments_before = 0 # unsigned number + +# Spaces to indent single line ('//') comments on lines after code. +indent_single_line_comments_after = 0 # unsigned number + +# When opening a paren for a control statement (if, for, while, etc), increase +# the indent level by this value. Negative values decrease the indent level. +indent_sparen_extra = 0 # number # Whether to indent trailing single line ('//') comments relative to the code # instead of trying to keep the same absolute column. indent_relative_single_line_comments = false # true/false # Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns. +# It might be wise to choose the same value for the option indent_case_brace. indent_switch_case = 4 # unsigned number +# Spaces to indent the body of a 'switch' before any 'case'. +# Usually the same as indent_columns or indent_switch_case. +indent_switch_body = 0 # unsigned number + +# Spaces to indent '{' from 'case'. By default, the brace will appear under +# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK. +# It might be wise to choose the same value for the option indent_switch_case. +indent_case_brace = 0 # number + +# indent 'break' with 'case' from 'switch'. +indent_switch_break_with_case = false # true/false + # Whether to indent preprocessor statements inside of switch statements. # # Default: true @@ -927,24 +1281,44 @@ indent_switch_pp = true # true/false # Usually 0. indent_case_shift = 0 # unsigned number -# Spaces to indent '{' from 'case'. By default, the brace will appear under -# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK. -indent_case_brace = 0 # number +# Whether to align comments before 'case' with the 'case'. +# +# Default: true +indent_case_comment = true # true/false + +# Whether to indent comments not found in first column. +# +# Default: true +indent_comment = true # true/false # Whether to indent comments found in first column. indent_col1_comment = false # true/false -# How to indent goto labels. +# Whether to indent multi string literal in first column. +indent_col1_multi_string_literal = false # true/false + +# Align comments on adjacent lines that are this many columns apart or less. # -# >0: Absolute column where 1 is the leftmost column -# ≤0: Subtract from brace indent +# Default: 3 +indent_comment_align_thresh = 3 # unsigned number + +# Whether to ignore indent for goto labels. +indent_ignore_label = false # true/false + +# How to indent goto labels. Requires indent_ignore_label=false. +# +# >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 +# How to indent access specifiers that are followed by a # colon. # +# >0: Absolute column where 1 is the leftmost column +# <=0: Subtract from brace indent +# # Default: 1 indent_access_spec = -2 # number @@ -975,6 +1349,10 @@ indent_paren_after_func_decl = false # true/false # if the parenthesis is on its own line. indent_paren_after_func_call = false # true/false +# Whether to indent a comma when inside a brace. +# If true, aligns under the open brace. +indent_comma_brace = false # true/false + # Whether to indent a comma when inside a parenthesis. # If true, aligns under the open parenthesis. indent_comma_paren = false # true/false @@ -1008,18 +1386,66 @@ indent_preserve_sql = false # true/false # Default: true indent_align_assign = false # true/false -# Whether to align continued statements at the '('. If false or the '(' is not +# If true, the indentation of the chunks after a '=' sequence will be set at +# LHS token indentation column before '='. +indent_off_after_assign = false # true/false + +# Whether to align continued statements at the '('. If false or the '(' is # followed by a newline, the next line indent is one tab. # # Default: true indent_align_paren = true # true/false +# (OC) Whether to indent Objective-C code inside message selectors. +indent_oc_inside_msg_sel = false # true/false + +# (OC) Whether to indent Objective-C blocks at brace level instead of usual +# rules. +indent_oc_block = false # true/false + +# (OC) Indent for Objective-C blocks in a message relative to the parameter +# name. +# +# =0: Use indent_oc_block rules +# >0: Use specified number of spaces to indent +indent_oc_block_msg = 0 # unsigned number + +# (OC) Minimum indent for subsequent parameters +indent_oc_msg_colon = 0 # unsigned number + +# (OC) Whether to prioritize aligning with initial colon (and stripping spaces +# from lines, if necessary). +# +# Default: true +indent_oc_msg_prioritize_first_colon = true # true/false + +# (OC) Whether to indent blocks the way that Xcode does by default +# (from the keyword if the parameter is on its own line; otherwise, from the +# previous indentation level). Requires indent_oc_block_msg=true. +indent_oc_block_msg_xcode_style = false # true/false + +# (OC) Whether to indent blocks from where the brace is, relative to a +# message keyword. Requires indent_oc_block_msg=true. +indent_oc_block_msg_from_keyword = false # true/false + +# (OC) Whether to indent blocks from where the brace is, relative to a message +# colon. Requires indent_oc_block_msg=true. +indent_oc_block_msg_from_colon = false # true/false + +# (OC) Whether to indent blocks from where the block caret is. +# Requires indent_oc_block_msg=true. +indent_oc_block_msg_from_caret = false # true/false + +# (OC) Whether to indent blocks from where the brace caret is. +# Requires indent_oc_block_msg=true. +indent_oc_block_msg_from_brace = false # true/false + # When indenting after virtual brace open and newline add further spaces to # reach this minimum indent. indent_min_vbrace_open = 0 # unsigned number # Whether to add further spaces after regular indent to reach next tabstop -# when identing after virtual brace open and newline. +# when indenting after virtual brace open and newline. indent_vbrace_open_on_tabstop = false # true/false # How to indent after a brace followed by another token (not a newline). @@ -1032,6 +1458,20 @@ indent_token_after_brace = true # true/false # Whether to indent the body of a C++11 lambda. indent_cpp_lambda_body = false # true/false +# How to indent compound literals that are being returned. +# true: add both the indent from return & the compound literal open brace +# (i.e. 2 indent levels) +# false: only indent 1 level, don't add the indent for the open brace, only +# add the indent for the return. +# +# Default: true +indent_compound_literal_return = true # true/false + +# (C#) Whether to indent a 'using' block if no braces are used. +# +# Default: true +indent_using_block = true # true/false + # How to indent the continuation of ternary operator. # # 0: Off (default) @@ -1039,6 +1479,12 @@ indent_cpp_lambda_body = false # true/false # 2: When the `:` is a continuation, indent it under `?` indent_ternary_operator = 0 # unsigned number +# Whether to indent the statements inside ternary operator. +indent_inside_ternary_operator = false # true/false + +# If true, the indentation of the chunks after a `return` sequence will be set at return indentation column. +indent_off_after_return = false # true/false + # If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column. indent_off_after_return_new = false # true/false @@ -1049,11 +1495,16 @@ indent_single_after_return = false # true/false # have their own indentation). indent_ignore_asm_block = false # true/false +# Don't indent the close parenthesis of a function definition, +# if the parenthesis is on its own line. +donot_indent_func_def_close_paren = false # true/false + # # Newline adding and removing options # # Whether to collapse empty blocks between '{' and '}'. +# If true, overrides nl_inside_empty_func nl_collapse_empty_body = false # true/false # Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'. @@ -1068,7 +1519,11 @@ nl_enum_leave_one_liners = true # true/false # Don't split one-line get or set functions. nl_getset_leave_one_liners = true # true/false +# (C#) Don't split one-line property get or set functions. +nl_cs_property_leave_one_liners = true # true/false + # Don't split one-line function definitions, as in 'int foo() { return 0; }'. +# might modify nl_func_type_name nl_func_leave_one_liners = true # true/false # Don't split one-line C++11 lambdas, as in '[]() { return 0; }'. @@ -1080,176 +1535,176 @@ nl_if_leave_one_liners = false # true/false # Don't split one-line while statements, as in 'while(...) b++;'. nl_while_leave_one_liners = false # true/false +# Don't split one-line do statements, as in 'do { b++; } while(...);'. +nl_do_leave_one_liners = true # true/false + # Don't split one-line for statements, as in 'for(...) b++;'. nl_for_leave_one_liners = true # true/false +# (OC) Don't split one-line Objective-C messages. +nl_oc_msg_leave_one_liner = false # true/false + +# (OC) Add or remove newline between method declaration and '{'. +nl_oc_mdef_brace = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove newline between Objective-C block signature and '{'. +nl_oc_block_brace = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove blank line before '@interface' statement. +nl_oc_before_interface = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove blank line before '@implementation' statement. +nl_oc_before_implementation = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove blank line before '@end' statement. +nl_oc_before_end = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove newline between '@interface' and '{'. +nl_oc_interface_brace = ignore # ignore/add/remove/force/not_defined + +# (OC) Add or remove newline between '@implementation' and '{'. +nl_oc_implementation_brace = ignore # ignore/add/remove/force/not_defined + # Add or remove newlines at the start of the file. -nl_start_of_file = ignore # ignore/add/remove/force +nl_start_of_file = ignore # ignore/add/remove/force/not_defined # The minimum number of newlines at the start of the file (only used if # nl_start_of_file is 'add' or 'force'). nl_start_of_file_min = 0 # unsigned number # Add or remove newline at the end of the file. -nl_end_of_file = ignore # ignore/add/remove/force +nl_end_of_file = ignore # ignore/add/remove/force/not_defined # The minimum number of newlines at the end of the file (only used if # nl_end_of_file is 'add' or 'force'). nl_end_of_file_min = 0 # unsigned number # Add or remove newline between '=' and '{'. -nl_assign_brace = ignore # ignore/add/remove/force +nl_assign_brace = ignore # ignore/add/remove/force/not_defined # (D) Add or remove newline between '=' and '['. -nl_assign_square = ignore # ignore/add/remove/force +nl_assign_square = ignore # ignore/add/remove/force/not_defined # Add or remove newline between '[]' and '{'. -nl_tsquare_brace = force # ignore/add/remove/force +nl_tsquare_brace = force # ignore/add/remove/force/not_defined # (D) Add or remove newline after '= ['. 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 # unsigned number - -# The number of newlines before a block of typedefs. If nl_after_access_spec -# is non-zero, that option takes precedence. -# -# 0 = No change (default). -nl_typedef_blk_start = 0 # unsigned number - -# The number of newlines after a block of typedefs. -# -# 0 = No change (default). -nl_typedef_blk_end = 0 # unsigned number - -# The maximum number of consecutive newlines within a block of typedefs. -# -# 0 = No change (default). -nl_typedef_blk_in = 0 # unsigned number - -# The number of newlines before a block of variable definitions not at the top -# of a function body. If nl_after_access_spec is non-zero, that option takes -# precedence. -# -# 0 = No change (default). -nl_var_def_blk_start = 0 # unsigned number - -# The number of newlines after a block of variable definitions not at the top -# of a function body. -# -# 0 = No change (default). -nl_var_def_blk_end = 0 # unsigned number - -# The maximum number of consecutive newlines within a block of variable -# definitions. -# -# 0 = No change (default). -nl_var_def_blk_in = 0 # unsigned number +nl_after_square_assign = ignore # ignore/add/remove/force/not_defined # Add or remove newline between a function call's ')' and '{', as in # 'list_for_each(item, &list) { }'. -nl_fcall_brace = ignore # ignore/add/remove/force +nl_fcall_brace = ignore # ignore/add/remove/force/not_defined # Add or remove newline between 'enum' and '{'. -nl_enum_brace = add # ignore/add/remove/force +nl_enum_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between 'enum' and 'class'. -nl_enum_class = remove # ignore/add/remove/force +nl_enum_class = remove # ignore/add/remove/force/not_defined # Add or remove newline between 'enum class' and the identifier. -nl_enum_class_identifier = remove # ignore/add/remove/force +nl_enum_class_identifier = remove # ignore/add/remove/force/not_defined # Add or remove newline between 'enum class' type and ':'. -nl_enum_identifier_colon = remove # ignore/add/remove/force +nl_enum_identifier_colon = remove # ignore/add/remove/force/not_defined # Add or remove newline between 'enum class identifier :' and type. -nl_enum_colon_type = remove # ignore/add/remove/force +nl_enum_colon_type = remove # ignore/add/remove/force/not_defined # Add or remove newline between 'struct and '{'. -nl_struct_brace = add # ignore/add/remove/force +nl_struct_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between 'union' and '{'. -nl_union_brace = add # ignore/add/remove/force +nl_union_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between 'if' and '{'. -nl_if_brace = add # ignore/add/remove/force +nl_if_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between '}' and 'else'. -nl_brace_else = add # ignore/add/remove/force +nl_brace_else = add # ignore/add/remove/force/not_defined # Add or remove newline between 'else if' and '{'. If set to ignore, # nl_if_brace is used instead. -nl_elseif_brace = add # ignore/add/remove/force +nl_elseif_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between 'else' and '{'. -nl_else_brace = add # ignore/add/remove/force +nl_else_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between 'else' and 'if'. -nl_else_if = ignore # ignore/add/remove/force +nl_else_if = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline before '{' opening brace +nl_before_opening_brace_func_class_def = add # ignore/add/remove/force/not_defined # Add or remove newline before 'if'/'else if' closing parenthesis. -nl_before_if_closing_paren = ignore # ignore/add/remove/force +nl_before_if_closing_paren = ignore # ignore/add/remove/force/not_defined # Add or remove newline between '}' and 'finally'. -nl_brace_finally = add # ignore/add/remove/force +nl_brace_finally = add # ignore/add/remove/force/not_defined # Add or remove newline between 'finally' and '{'. -nl_finally_brace = add # ignore/add/remove/force +nl_finally_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between 'try' and '{'. -nl_try_brace = add # ignore/add/remove/force +nl_try_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between get/set and '{'. -nl_getset_brace = add # ignore/add/remove/force +nl_getset_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between 'for' and '{'. -nl_for_brace = add # ignore/add/remove/force +nl_for_brace = add # ignore/add/remove/force/not_defined # Add or remove newline before the '{' of a 'catch' statement, as in # 'catch (decl) {'. -nl_catch_brace = add # ignore/add/remove/force +nl_catch_brace = add # ignore/add/remove/force/not_defined + +# (OC) Add or remove newline before the '{' of a '@catch' statement, as in +# '@catch (decl) {'. If set to ignore, nl_catch_brace is used. +nl_oc_catch_brace = add # ignore/add/remove/force/not_defined # Add or remove newline between '}' and 'catch'. -nl_brace_catch = add # ignore/add/remove/force +nl_brace_catch = add # ignore/add/remove/force/not_defined + +# (OC) Add or remove newline between '}' and '@catch'. If set to ignore, +# nl_brace_catch is used. +nl_oc_brace_catch = add # ignore/add/remove/force/not_defined # Add or remove newline between '}' and ']'. -nl_brace_square = ignore # ignore/add/remove/force +nl_brace_square = ignore # ignore/add/remove/force/not_defined # Add or remove newline between '}' and ')' in a function invocation. -nl_brace_fparen = ignore # ignore/add/remove/force +nl_brace_fparen = ignore # ignore/add/remove/force/not_defined # Add or remove newline between 'while' and '{'. -nl_while_brace = ignore # ignore/add/remove/force +nl_while_brace = ignore # ignore/add/remove/force/not_defined # (D) Add or remove newline between 'scope (x)' and '{'. -nl_scope_brace = add # ignore/add/remove/force +nl_scope_brace = add # ignore/add/remove/force/not_defined # (D) Add or remove newline between 'unittest' and '{'. -nl_unittest_brace = ignore # ignore/add/remove/force +nl_unittest_brace = ignore # ignore/add/remove/force/not_defined # (D) Add or remove newline between 'version (x)' and '{'. -nl_version_brace = ignore # ignore/add/remove/force +nl_version_brace = ignore # ignore/add/remove/force/not_defined + +# (C#) Add or remove newline between 'using' and '{'. +nl_using_brace = ignore # ignore/add/remove/force/not_defined # 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 +nl_brace_brace = ignore # ignore/add/remove/force/not_defined # Add or remove newline between 'do' and '{'. -nl_do_brace = ignore # ignore/add/remove/force +nl_do_brace = ignore # ignore/add/remove/force/not_defined # Add or remove newline between '}' and 'while' of 'do' statement. -nl_brace_while = ignore # ignore/add/remove/force +nl_brace_while = ignore # ignore/add/remove/force/not_defined # Add or remove newline between 'switch' and '{'. -nl_switch_brace = ignore # ignore/add/remove/force +nl_switch_brace = ignore # ignore/add/remove/force/not_defined # Add or remove newline between 'synchronized' and '{'. -nl_synchronized_brace = ignore # ignore/add/remove/force +nl_synchronized_brace = ignore # ignore/add/remove/force/not_defined # Add a newline between ')' and '{' if the ')' is on a different line than the # if/for/etc. @@ -1258,6 +1713,14 @@ nl_synchronized_brace = ignore # ignore/add/remove/force # nl_catch_brace. nl_multi_line_cond = false # true/false +# Add a newline after '(' if an if/for/while/switch condition spans multiple +# lines +nl_multi_line_sparen_open = ignore # ignore/add/remove/force/not_defined + +# Add a newline before ')' if an if/for/while/switch condition spans multiple +# lines. Overrides nl_before_if_closing_paren if both are specified. +nl_multi_line_sparen_close = ignore # ignore/add/remove/force/not_defined + # Force a newline in a define after the macro name for multi-line defines. nl_multi_line_define = false # true/false @@ -1271,86 +1734,141 @@ nl_after_case = false # true/false # Add or remove newline between a case ':' and '{'. # # Overrides nl_after_case. -nl_case_colon_brace = ignore # ignore/add/remove/force +nl_case_colon_brace = ignore # ignore/add/remove/force/not_defined # Add or remove newline between ')' and 'throw'. -nl_before_throw = ignore # ignore/add/remove/force +nl_before_throw = ignore # ignore/add/remove/force/not_defined # Add or remove newline between 'namespace' and '{'. -nl_namespace_brace = ignore # ignore/add/remove/force +nl_namespace_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'template<>' and whatever follows. -nl_template_class = ignore # ignore/add/remove/force +# Add or remove newline after 'template<...>' of a template class. +nl_template_class = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<...>' of a template class declaration. +# +# Overrides nl_template_class. +nl_template_class_decl = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<>' of a specialized class declaration. +# +# Overrides nl_template_class_decl. +nl_template_class_decl_special = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<...>' of a template class definition. +# +# Overrides nl_template_class. +nl_template_class_def = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<>' of a specialized class definition. +# +# Overrides nl_template_class_def. +nl_template_class_def_special = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<...>' of a template function. +nl_template_func = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<...>' of a template function +# declaration. +# +# Overrides nl_template_func. +nl_template_func_decl = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<>' of a specialized function +# declaration. +# +# Overrides nl_template_func_decl. +nl_template_func_decl_special = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<...>' of a template function +# definition. +# +# Overrides nl_template_func. +nl_template_func_def = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<>' of a specialized function +# definition. +# +# Overrides nl_template_func_def. +nl_template_func_def_special = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after 'template<...>' of a template variable. +nl_template_var = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline between 'template<...>' and 'using' of a templated +# type alias. +nl_template_using = ignore # ignore/add/remove/force/not_defined # Add or remove newline between 'class' and '{'. -nl_class_brace = ignore # ignore/add/remove/force +nl_class_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline before or after (depending on pos_class_comma) each -# ',' in the base class list. -nl_class_init_args = ignore # ignore/add/remove/force +# Add or remove newline before or after (depending on pos_class_comma, +# may not be IGNORE) each',' in the base class list. +nl_class_init_args = ignore # ignore/add/remove/force/not_defined # 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 = force # ignore/add/remove/force +nl_constr_init_args = force # ignore/add/remove/force/not_defined # Add or remove newline before first element, after comma, and after last # element, in 'enum'. -nl_enum_own_lines = ignore # ignore/add/remove/force +nl_enum_own_lines = ignore # ignore/add/remove/force/not_defined # Add or remove newline between return type and function name in a function # definition. -nl_func_type_name = ignore # ignore/add/remove/force +# might be modified by nl_func_leave_one_liners +nl_func_type_name = ignore # ignore/add/remove/force/not_defined # Add or remove newline between return type and function name inside a class # definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name # is used instead. -nl_func_type_name_class = ignore # ignore/add/remove/force +nl_func_type_name_class = ignore # ignore/add/remove/force/not_defined # Add or remove newline between class specification and '::' # in 'void A::f() { }'. Only appears in separate member implementation (does # not appear with in-line implementation). -nl_func_class_scope = ignore # ignore/add/remove/force +nl_func_class_scope = ignore # ignore/add/remove/force/not_defined # Add or remove newline between function scope and name, as in # 'void A :: f() { }'. -nl_func_scope_name = ignore # ignore/add/remove/force +nl_func_scope_name = ignore # ignore/add/remove/force/not_defined # Add or remove newline between return type and function name in a prototype. -nl_func_proto_type_name = ignore # ignore/add/remove/force +nl_func_proto_type_name = ignore # ignore/add/remove/force/not_defined # Add or remove newline between a function name and the opening '(' in the # declaration. -nl_func_paren = ignore # ignore/add/remove/force +nl_func_paren = ignore # ignore/add/remove/force/not_defined # Overrides nl_func_paren for functions with no parameters. -nl_func_paren_empty = ignore # ignore/add/remove/force +nl_func_paren_empty = ignore # ignore/add/remove/force/not_defined # Add or remove newline between a function name and the opening '(' in the # definition. -nl_func_def_paren = ignore # ignore/add/remove/force +nl_func_def_paren = ignore # ignore/add/remove/force/not_defined # Overrides nl_func_def_paren for functions with no parameters. -nl_func_def_paren_empty = ignore # ignore/add/remove/force +nl_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined # Add or remove newline between a function name and the opening '(' in the # call. -nl_func_call_paren = remove # ignore/add/remove/force +nl_func_call_paren = remove # ignore/add/remove/force/not_defined # Overrides nl_func_call_paren for functions with no parameters. -nl_func_call_paren_empty = remove # ignore/add/remove/force +nl_func_call_paren_empty = remove # ignore/add/remove/force/not_defined # Add or remove newline after '(' in a function declaration. -nl_func_decl_start = ignore # ignore/add/remove/force +nl_func_decl_start = ignore # ignore/add/remove/force/not_defined # Add or remove newline after '(' in a function definition. -nl_func_def_start = ignore # ignore/add/remove/force +nl_func_def_start = ignore # ignore/add/remove/force/not_defined # Overrides nl_func_decl_start when there is only one parameter. -nl_func_decl_start_single = ignore # ignore/add/remove/force +nl_func_decl_start_single = ignore # ignore/add/remove/force/not_defined # Overrides nl_func_def_start when there is only one parameter. -nl_func_def_start_single = ignore # ignore/add/remove/force +nl_func_def_start_single = ignore # ignore/add/remove/force/not_defined # Whether to add a newline after '(' in a function declaration if '(' and ')' # are in different lines. If false, nl_func_decl_start is used instead. @@ -1361,10 +1879,13 @@ nl_func_decl_start_multi_line = false # true/false nl_func_def_start_multi_line = false # true/false # Add or remove newline after each ',' in a function declaration. -nl_func_decl_args = ignore # ignore/add/remove/force +nl_func_decl_args = ignore # ignore/add/remove/force/not_defined # Add or remove newline after each ',' in a function definition. -nl_func_def_args = ignore # ignore/add/remove/force +nl_func_def_args = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after each ',' in a function call. +nl_func_call_args = ignore # ignore/add/remove/force/not_defined # Whether to add a newline after each ',' in a function declaration if '(' # and ')' are in different lines. If false, nl_func_decl_args is used instead. @@ -1375,16 +1896,16 @@ nl_func_decl_args_multi_line = false # true/false nl_func_def_args_multi_line = false # true/false # Add or remove newline before the ')' in a function declaration. -nl_func_decl_end = ignore # ignore/add/remove/force +nl_func_decl_end = ignore # ignore/add/remove/force/not_defined # Add or remove newline before the ')' in a function definition. -nl_func_def_end = ignore # ignore/add/remove/force +nl_func_def_end = ignore # ignore/add/remove/force/not_defined # Overrides nl_func_decl_end when there is only one parameter. -nl_func_decl_end_single = ignore # ignore/add/remove/force +nl_func_decl_end_single = ignore # ignore/add/remove/force/not_defined # Overrides nl_func_def_end when there is only one parameter. -nl_func_def_end_single = ignore # ignore/add/remove/force +nl_func_def_end_single = ignore # ignore/add/remove/force/not_defined # Whether to add a newline before ')' in a function declaration if '(' and ')' # are in different lines. If false, nl_func_decl_end is used instead. @@ -1395,13 +1916,20 @@ nl_func_decl_end_multi_line = false # true/false nl_func_def_end_multi_line = false # true/false # Add or remove newline between '()' in a function declaration. -nl_func_decl_empty = ignore # ignore/add/remove/force +nl_func_decl_empty = ignore # ignore/add/remove/force/not_defined # Add or remove newline between '()' in a function definition. -nl_func_def_empty = ignore # ignore/add/remove/force +nl_func_def_empty = ignore # ignore/add/remove/force/not_defined # Add or remove newline between '()' in a function call. -nl_func_call_empty = remove # ignore/add/remove/force +nl_func_call_empty = remove # ignore/add/remove/force/not_defined + +# Whether to add a newline after '(' in a function call, +# has preference over nl_func_call_start_multi_line. +nl_func_call_start = ignore # ignore/add/remove/force/not_defined + +# Whether to add a newline before ')' in a function call. +nl_func_call_end = ignore # ignore/add/remove/force/not_defined # Whether to add a newline after '(' in a function call if '(' and ')' are in # different lines. @@ -1415,36 +1943,58 @@ nl_func_call_args_multi_line = false # true/false # different lines. nl_func_call_end_multi_line = false # true/false +# Whether to respect nl_func_call_XXX option in case of closure args. +nl_func_call_args_multi_line_ignore_closures = false # true/false + +# Whether to add a newline after '<' of a template parameter list. +nl_template_start = false # true/false + +# Whether to add a newline after each ',' in a template parameter list. +nl_template_args = false # true/false + +# Whether to add a newline before '>' of a template parameter list. +nl_template_end = false # true/false + +# (OC) Whether to put each Objective-C message parameter on a separate line. +# See nl_oc_msg_leave_one_liner. +nl_oc_msg_args = false # true/false + # Add or remove newline between function signature and '{'. -nl_fdef_brace = ignore # ignore/add/remove/force +nl_fdef_brace = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline between function signature and '{', +# if signature ends with ')'. Overrides nl_fdef_brace. +nl_fdef_brace_cond = ignore # ignore/add/remove/force/not_defined # Add or remove newline between C++11 lambda signature and '{'. -nl_cpp_ldef_brace = ignore # ignore/add/remove/force +nl_cpp_ldef_brace = ignore # ignore/add/remove/force/not_defined # Add or remove newline between 'return' and the return expression. -nl_return_expr = ignore # ignore/add/remove/force +nl_return_expr = ignore # ignore/add/remove/force/not_defined # Whether to add a newline after semicolons, except in 'for' statements. nl_after_semicolon = false # true/false # (Java) Add or remove newline between the ')' and '{{' of the double brace # initializer. -nl_paren_dbrace_open = ignore # ignore/add/remove/force +nl_paren_dbrace_open = ignore # ignore/add/remove/force/not_defined # Whether to add a newline after the type in an unnamed temporary # direct-list-initialization. -nl_type_brace_init_lst = ignore # ignore/add/remove/force +nl_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined # Whether to add a newline after the open brace in an unnamed temporary # direct-list-initialization. -nl_type_brace_init_lst_open = ignore # ignore/add/remove/force +nl_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined # Whether to add a newline before the close brace in an unnamed temporary # direct-list-initialization. -nl_type_brace_init_lst_close = ignore # ignore/add/remove/force +nl_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined -# Whether to add a newline after '{'. This also adds a newline before the -# matching '}'. +# Whether to add a newline before '{'. +nl_before_brace_open = false # true/false + +# Whether to add a newline after '{'. nl_after_brace_open = false # true/false # Whether to add a newline between the open brace and a trailing single-line @@ -1470,7 +2020,7 @@ nl_after_vbrace_close = false # true/false # Add or remove newline between the close brace and identifier, # as in 'struct { int a; } b;'. Affects enumerations, unions and # structures. If set to ignore, uses nl_after_brace_close. -nl_brace_struct_var = ignore # ignore/add/remove/force +nl_brace_struct_var = ignore # ignore/add/remove/force/not_defined # Whether to alter newlines in '#define' macros. nl_define_macro = false # true/false @@ -1488,41 +2038,61 @@ nl_squeeze_ifdef = false # true/false nl_squeeze_ifdef_top_level = false # true/false # Add or remove blank line before 'if'. -nl_before_if = ignore # ignore/add/remove/force +nl_before_if = ignore # ignore/add/remove/force/not_defined # Add or remove blank line after 'if' statement. Add/Force work only if the # next token is not a closing brace. -nl_after_if = ignore # ignore/add/remove/force +nl_after_if = ignore # ignore/add/remove/force/not_defined # Add or remove blank line before 'for'. -nl_before_for = ignore # ignore/add/remove/force +nl_before_for = ignore # ignore/add/remove/force/not_defined # Add or remove blank line after 'for' statement. -nl_after_for = ignore # ignore/add/remove/force +nl_after_for = ignore # ignore/add/remove/force/not_defined # Add or remove blank line before 'while'. -nl_before_while = ignore # ignore/add/remove/force +nl_before_while = ignore # ignore/add/remove/force/not_defined # Add or remove blank line after 'while' statement. -nl_after_while = ignore # ignore/add/remove/force +nl_after_while = ignore # ignore/add/remove/force/not_defined # Add or remove blank line before 'switch'. -nl_before_switch = ignore # ignore/add/remove/force +nl_before_switch = ignore # ignore/add/remove/force/not_defined # Add or remove blank line after 'switch' statement. -nl_after_switch = ignore # ignore/add/remove/force +nl_after_switch = ignore # ignore/add/remove/force/not_defined # Add or remove blank line before 'synchronized'. -nl_before_synchronized = ignore # ignore/add/remove/force +nl_before_synchronized = ignore # ignore/add/remove/force/not_defined # Add or remove blank line after 'synchronized' statement. -nl_after_synchronized = ignore # ignore/add/remove/force +nl_after_synchronized = ignore # ignore/add/remove/force/not_defined # Add or remove blank line before 'do'. -nl_before_do = ignore # ignore/add/remove/force +nl_before_do = ignore # ignore/add/remove/force/not_defined # Add or remove blank line after 'do/while' statement. -nl_after_do = ignore # ignore/add/remove/force +nl_after_do = ignore # ignore/add/remove/force/not_defined + +# Ignore nl_before_{if,for,switch,do,synchronized} if the control +# statement is immediately after a case statement. +# if nl_before_{if,for,switch,do} is set to remove, this option +# does nothing. +nl_before_ignore_after_case = false # true/false + +# Whether to put a blank line before 'return' statements, unless after an open +# brace. +nl_before_return = false # true/false + +# Whether to put a blank line after 'return' statements, unless followed by a +# close brace. +nl_after_return = false # true/false + +# Whether to put a blank line before a member '.' or '->' operators. +nl_before_member = ignore # ignore/add/remove/force/not_defined + +# (Java) Whether to put a blank line after a member '.' or '->' operators. +nl_after_member = ignore # ignore/add/remove/force/not_defined # Whether to double-space commented-entries in 'struct'/'union'/'enum'. nl_ds_struct_enum_cmt = false # true/false @@ -1533,27 +2103,27 @@ nl_ds_struct_enum_close_brace = false # true/false # Add or remove newline before or after (depending on pos_class_colon) a class # colon, as in 'class Foo : public Bar'. -nl_class_colon = ignore # ignore/add/remove/force +nl_class_colon = ignore # ignore/add/remove/force/not_defined # Add or remove newline around a class constructor colon. The exact position # depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma. -nl_constr_colon = ignore # ignore/add/remove/force +nl_constr_colon = ignore # ignore/add/remove/force/not_defined # Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }' # into a single line. If true, prevents other brace newline rules from turning -# such code into four lines. +# such code into four lines. If true, it also preserves one-liner namespaces. nl_namespace_two_to_one_liner = false # true/false # Whether to remove a newline in simple unbraced if statements, turning them -# into one-liners, as in 'if(b)\n i++;' → 'if(b) i++;'. +# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'. nl_create_if_one_liner = false # true/false # Whether to remove a newline in simple unbraced for statements, turning them -# into one-liners, as in 'for (...)\n stmt;' → 'for (...) stmt;'. +# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'. nl_create_for_one_liner = false # true/false # Whether to remove a newline in simple unbraced while statements, turning -# them into one-liners, as in 'while (expr)\n stmt;' → 'while (expr) stmt;'. +# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'. nl_create_while_one_liner = false # true/false # Whether to collapse a function definition whose body (not counting braces) @@ -1561,6 +2131,10 @@ nl_create_while_one_liner = false # true/false # a single line. nl_create_func_def_one_liner = false # true/false +# Whether to split one-line simple list definitions into three lines by +# adding newlines, as in 'int a[12] = { 0 };'. +nl_create_list_one_liner = false # true/false + # Whether to split one-line simple unbraced if statements into two lines by # adding a newline, as in 'if(b) i++;'. nl_split_if_one_liner = false # true/false @@ -1573,6 +2147,10 @@ nl_split_for_one_liner = false # true/false # adding a newline, as in 'while (expr) stmt;'. nl_split_while_one_liner = false # true/false +# Don't add a newline before a cpp-comment in a parameter list of a function +# call. +donot_add_nl_before_cpp_comment = false # true/false + # # Blank line options # @@ -1583,10 +2161,17 @@ nl_max = 0 # unsigned number # The maximum number of consecutive newlines in a function. nl_max_blank_in_func = 0 # unsigned number +# The number of newlines inside an empty function body. +# This option overrides eat_blanks_after_open_brace and +# eat_blanks_before_close_brace, but is ignored when +# nl_collapse_empty_body=true +nl_inside_empty_func = 0 # unsigned number + # The number of newlines before a function prototype. nl_before_func_body_proto = 0 # unsigned number -# The number of newlines before a multi-line function definition. +# The number of newlines before a multi-line function definition. Where +# applicable, this option is overridden with eat_blanks_after_open_brace=true nl_before_func_body_def = 0 # unsigned number # The number of newlines before a class constructor/destructor prototype. @@ -1631,6 +2216,47 @@ nl_after_func_body_class = 0 # unsigned number # Overrides nl_after_func_body and nl_after_func_body_class. nl_after_func_body_one_liner = 0 # unsigned number +# The number of blank lines after a block of variable definitions at the top +# of a function body. +# +# 0: No change (default). +nl_func_var_def_blk = 0 # unsigned number + +# The number of newlines before a block of typedefs. If nl_after_access_spec +# is non-zero, that option takes precedence. +# +# 0: No change (default). +nl_typedef_blk_start = 0 # unsigned number + +# The number of newlines after a block of typedefs. +# +# 0: No change (default). +nl_typedef_blk_end = 0 # unsigned number + +# The maximum number of consecutive newlines within a block of typedefs. +# +# 0: No change (default). +nl_typedef_blk_in = 0 # unsigned number + +# The number of newlines before a block of variable definitions not at the top +# of a function body. If nl_after_access_spec is non-zero, that option takes +# precedence. +# +# 0: No change (default). +nl_var_def_blk_start = 0 # unsigned number + +# The number of newlines after a block of variable definitions not at the top +# of a function body. +# +# 0: No change (default). +nl_var_def_blk_end = 0 # unsigned number + +# The maximum number of consecutive newlines within a block of variable +# definitions. +# +# 0: No change (default). +nl_var_def_blk_in = 0 # unsigned number + # The minimum number of newlines before a multi-line comment. # Doesn't apply if after a brace open or another multi-line comment. nl_before_block_comment = 0 # unsigned number @@ -1649,6 +2275,9 @@ nl_after_multiline_comment = false # true/false # Whether to force a newline after a label's colon. nl_after_label_colon = false # true/false +# The number of newlines before a struct definition. +nl_before_struct = 0 # unsigned number + # The number of newlines after '}' or ';' of a struct/enum/union definition. nl_after_struct = 0 # unsigned number @@ -1658,18 +2287,33 @@ nl_before_class = 0 # unsigned number # The number of newlines after '}' or ';' of a class definition. nl_after_class = 0 # unsigned number +# The number of newlines before a namespace. +nl_before_namespace = 0 # unsigned number + +# The number of newlines after '{' of a namespace. This also adds newlines +# before the matching '}'. +# +# 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if +# applicable, otherwise no change. +# +# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace. +nl_inside_namespace = 0 # unsigned number + +# The number of newlines after '}' of a namespace. +nl_after_namespace = 0 # unsigned number + # The number of newlines before an access specifier label. This also includes # the Qt-specific 'signals:' and 'slots:'. Will not change the newline count # if after a brace open. # -# 0 = No change (default). +# 0: No change (default). nl_before_access_spec = 0 # unsigned number # The number of newlines after an access specifier label. This also includes # the Qt-specific 'signals:' and 'slots:'. Will not change the newline count # if after a brace open. # -# 0 = No change (default). +# 0: No change (default). # # Overrides nl_typedef_blk_start and nl_var_def_blk_start. nl_after_access_spec = 0 # unsigned number @@ -1677,23 +2321,28 @@ nl_after_access_spec = 0 # unsigned number # The number of newlines between a function definition and the function # comment, as in '// comment\n void foo() {...}'. # -# 0 = No change (default). +# 0: No change (default). nl_comment_func_def = 0 # unsigned number # The number of newlines after a try-catch-finally block that isn't followed # by a brace close. # -# 0 = No change (default). +# 0: No change (default). nl_after_try_catch_finally = 0 # unsigned number -# The number of newlines after '{' of a namespace. This also adds newlines -# before the matching '}'. +# (C#) The number of newlines before and after a property, indexer or event +# declaration. # -# 0 = Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if -# applicable, otherwise no change. +# 0: No change (default). +nl_around_cs_property = 0 # unsigned number + +# (C#) The number of newlines between the get/set/add/remove handlers. # -# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace. -nl_inside_namespace = 0 # unsigned number +# 0: No change (default). +nl_between_get_set = 0 # unsigned number + +# (C#) Add or remove newline between property and the '{'. +nl_property_brace = ignore # ignore/add/remove/force/not_defined # Whether to remove blank lines after '{'. eat_blanks_after_open_brace = false # true/false @@ -1708,20 +2357,32 @@ eat_blanks_before_close_brace = false # true/false # 2: Remove all newlines and reformat completely by config nl_remove_extra_newlines = 0 # unsigned number -# Whether to put a blank line before 'return' statements, unless after an open -# brace. -nl_before_return = false # true/false - -# Whether to put a blank line after 'return' statements, unless followed by a -# close brace. -nl_after_return = false # true/false - # (Java) Add or remove newline after an annotation statement. Only affects # annotations that are after a newline. -nl_after_annotation = ignore # ignore/add/remove/force +nl_after_annotation = ignore # ignore/add/remove/force/not_defined # (Java) Add or remove newline between two annotations. -nl_between_annotation = ignore # ignore/add/remove/force +nl_between_annotation = ignore # ignore/add/remove/force/not_defined + +# The number of newlines before a whole-file #ifdef. +# +# 0: No change (default). +nl_before_whole_file_ifdef = 0 # unsigned number + +# The number of newlines after a whole-file #ifdef. +# +# 0: No change (default). +nl_after_whole_file_ifdef = 0 # unsigned number + +# The number of newlines before a whole-file #endif. +# +# 0: No change (default). +nl_before_whole_file_endif = 0 # unsigned number + +# The number of newlines after a whole-file #endif. +# +# 0: No change (default). +nl_after_whole_file_endif = 0 # unsigned number # # Positioning options @@ -1766,21 +2427,26 @@ pos_class_colon = ignore # ignore/break/force/lead/trail/join/ # Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma. pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +# The position of shift operators in wrapped expressions. +pos_shift = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + # # Line splitting options # # Try to limit code width to N columns. -code_width = 0 # unsigned number +code_width = 100 # unsigned number # Whether to fully split long 'for' statements at semi-colons. ls_for_split_full = false # true/false # Whether to fully split long function prototypes/calls at commas. +# The option ls_code_width has priority over the option ls_func_split_full. ls_func_split_full = false # true/false # Whether to split lines as close to code_width as possible and ignore some # groupings. +# The option ls_code_width has priority over the option ls_func_split_full. ls_code_width = false # true/false # @@ -1807,55 +2473,74 @@ align_func_params = false # true/false # The span for aligning parameter definitions in function on parameter name. # -# 0 = Don't align (default). +# 0: Don't align (default). align_func_params_span = 0 # unsigned number # The threshold for aligning function parameter definitions. +# Use a negative number for absolute thresholds. # -# 0 = No limit (default). -align_func_params_thresh = 0 # unsigned number +# 0: No limit (default). +align_func_params_thresh = 0 # number # The gap for aligning function parameter definitions. align_func_params_gap = 0 # unsigned number +# The span for aligning constructor value. +# +# 0: Don't align (default). +align_constr_value_span = 0 # unsigned number + +# The threshold for aligning constructor value. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_constr_value_thresh = 0 # number + +# The gap for aligning constructor value. +align_constr_value_gap = 0 # unsigned number + # Whether to align parameters in single-line functions that have the same # name. The function names must already be aligned with each other. align_same_func_call_params = false # true/false # The span for aligning function-call parameters for single line functions. # -# 0 = Don't align (default). +# 0: Don't align (default). align_same_func_call_params_span = 0 # unsigned number # The threshold for aligning function-call parameters for single line # functions. +# Use a negative number for absolute thresholds. # -# 0 = No limit (default). -align_same_func_call_params_thresh = 0 # unsigned number +# 0: No limit (default). +align_same_func_call_params_thresh = 0 # number # The span for aligning variable definitions. # -# 0 = Don't align (default). +# 0: Don't align (default). align_var_def_span = 0 # unsigned number -# How to align the '*' in variable definitions. +# How to consider (or treat) the '*' in the alignment of variable definitions. # # 0: Part of the type 'void * foo;' (default) # 1: Part of the variable 'void *foo;' # 2: Dangling 'void *foo;' +# Dangling: the '*' will not be taken into account when aligning. align_var_def_star_style = 0 # unsigned number -# How to align the '&' in variable definitions. +# How to consider (or treat) the '&' in the alignment of variable definitions. # # 0: Part of the type 'long & foo;' (default) # 1: Part of the variable 'long &foo;' # 2: Dangling 'long &foo;' +# Dangling: the '&' will not be taken into account when aligning. align_var_def_amp_style = 0 # unsigned number # The threshold for aligning variable definitions. +# Use a negative number for absolute thresholds. # -# 0 = No limit (default). -align_var_def_thresh = 0 # unsigned number +# 0: No limit (default). +align_var_def_thresh = 0 # number # The gap for aligning variable definitions. align_var_def_gap = 0 # unsigned number @@ -1874,13 +2559,19 @@ align_var_def_inline = false # true/false # The span for aligning on '=' in assignments. # -# 0 = Don't align (default). +# 0: Don't align (default). align_assign_span = 0 # unsigned number -# The threshold for aligning on '=' in assignments. +# The span for aligning on '=' in function prototype modifier. # -# 0 = No limit (default). -align_assign_thresh = 0 # unsigned number +# 0: Don't align (default). +align_assign_func_proto_span = 0 # unsigned number + +# The threshold for aligning on '=' in assignments. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_assign_thresh = 0 # number # How to apply align_assign_span to function declaration "assignments", i.e. # 'virtual void foo() = 0' or '~foo() = {default|delete}'. @@ -1892,53 +2583,56 @@ align_assign_decl_func = 0 # unsigned number # The span for aligning on '=' in enums. # -# 0 = Don't align (default). +# 0: Don't align (default). align_enum_equ_span = 0 # unsigned number # The threshold for aligning on '=' in enums. +# Use a negative number for absolute thresholds. # -# 0 = no limit (default). -align_enum_equ_thresh = 0 # unsigned number +# 0: no limit (default). +align_enum_equ_thresh = 0 # number # The span for aligning class member definitions. # -# 0 = Don't align (default). +# 0: Don't align (default). align_var_class_span = 0 # unsigned number # The threshold for aligning class member definitions. +# Use a negative number for absolute thresholds. # -# 0 = No limit (default). -align_var_class_thresh = 0 # unsigned number +# 0: No limit (default). +align_var_class_thresh = 0 # number # The gap for aligning class member definitions. align_var_class_gap = 0 # unsigned number # The span for aligning struct/union member definitions. # -# 0 = Don't align (default). +# 0: Don't align (default). align_var_struct_span = 0 # unsigned number # The threshold for aligning struct/union member definitions. +# Use a negative number for absolute thresholds. # -# 0 = No limit (default). -align_var_struct_thresh = 0 # unsigned number +# 0: No limit (default). +align_var_struct_thresh = 0 # number # The gap for aligning struct/union member definitions. align_var_struct_gap = 0 # unsigned number # The span for aligning struct initializer values. # -# 0 = Don't align (default). +# 0: Don't align (default). align_struct_init_span = 0 # unsigned number -# The minimum space between the type and the synonym of a typedef. -align_typedef_gap = 0 # unsigned number - # The span for aligning single-line typedefs. # -# 0 = Don't align (default). +# 0: Don't align (default). align_typedef_span = 0 # unsigned number +# The minimum space between the type and the synonym of a typedef. +align_typedef_gap = 0 # unsigned number + # How to align typedef'd functions with other typedefs. # # 0: Don't mix them at all (default) @@ -1946,25 +2640,32 @@ align_typedef_span = 0 # unsigned number # 2: Align the function type name with the other type names align_typedef_func = 0 # unsigned number -# How to align the '*' in typedefs. +# How to consider (or treat) the '*' in the alignment of typedefs. # -# 0: Align on typedef type, ignore '*' (default) -# 1: The '*' is part of type name: 'typedef int *pint;' -# 2: The '*' is part of the type, but dangling: 'typedef int *pint;' +# 0: Part of the typedef type, 'typedef int * pint;' (default) +# 1: Part of type name: 'typedef int *pint;' +# 2: Dangling: 'typedef int *pint;' +# Dangling: the '*' will not be taken into account when aligning. align_typedef_star_style = 0 # unsigned number -# How to align the '&' in typedefs. +# How to consider (or treat) the '&' in the alignment of typedefs. # -# 0: Align on typedef type, ignore '&' (default) -# 1: The '&' is part of type name: 'typedef int &pint;' -# 2: The '&' is part of the type, but dangling: 'typedef int &pint;' +# 0: Part of the typedef type, 'typedef int & intref;' (default) +# 1: Part of type name: 'typedef int &intref;' +# 2: Dangling: 'typedef int &intref;' +# Dangling: the '&' will not be taken into account when aligning. align_typedef_amp_style = 0 # unsigned number # The span for aligning comments that end lines. # -# 0 = Don't align (default). +# 0: Don't align (default). align_right_cmt_span = 0 # unsigned number +# Minimum number of columns between preceding text and a trailing comment in +# order for the comment to qualify for being aligned. Must be non-zero to have +# an effect. +align_right_cmt_gap = 0 # unsigned number + # If aligning comments, whether to mix with comments after '}' and #endif with # less than three spaces before the comment. align_right_cmt_mix = false # true/false @@ -1972,23 +2673,40 @@ align_right_cmt_mix = false # true/false # Whether to only align trailing comments that are at the same brace level. align_right_cmt_same_level = false # true/false -# Minimum number of columns between preceding text and a trailing comment in -# order for the comment to qualify for being aligned. Must be non-zero to have -# an effect. -align_right_cmt_gap = 0 # unsigned number - # Minimum column at which to align trailing comments. Comments which are # aligned beyond this column, but which can be aligned in a lesser column, # may be "pulled in". # -# 0 = Ignore (default). +# 0: Ignore (default). align_right_cmt_at_col = 0 # unsigned number # The span for aligning function prototypes. # -# 0 = Don't align (default). +# 0: Don't align (default). align_func_proto_span = 0 # unsigned number +# How to consider (or treat) the '*' in the alignment of function prototypes. +# +# 0: Part of the type 'void * foo();' (default) +# 1: Part of the function 'void *foo();' +# 2: Dangling 'void *foo();' +# Dangling: the '*' will not be taken into account when aligning. +align_func_proto_star_style = 0 # unsigned number + +# How to consider (or treat) the '&' in the alignment of function prototypes. +# +# 0: Part of the type 'long & foo();' (default) +# 1: Part of the function 'long &foo();' +# 2: Dangling 'long &foo();' +# Dangling: the '&' will not be taken into account when aligning. +align_func_proto_amp_style = 0 # unsigned number + +# The threshold for aligning function prototypes. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_func_proto_thresh = 0 # number + # Minimum gap between the return type and the function name. align_func_proto_gap = 0 # unsigned number @@ -2011,6 +2729,11 @@ align_single_line_brace = false # true/false # Gap for align_single_line_brace. align_single_line_brace_gap = 0 # unsigned number +# (OC) The span for aligning Objective-C message specifications. +# +# 0: Don't align (default). +align_oc_msg_spec_span = 0 # unsigned number + # Whether to align macros wrapped with a backslash and a newline. This will # not work right if the macro contains a multi-line comment. align_nl_cont = false # true/false @@ -2018,23 +2741,46 @@ align_nl_cont = false # true/false # Whether to align macro functions and variables together. align_pp_define_together = false # true/false -# The minimum space between label and value of a preprocessor define. -align_pp_define_gap = 0 # unsigned number - # The span for aligning on '#define' bodies. # # =0: Don't align (default) # >0: Number of lines (including comments) between blocks align_pp_define_span = 0 # unsigned number +# The minimum space between label and value of a preprocessor define. +align_pp_define_gap = 0 # unsigned number + # Whether to align lines that start with '<<' with previous '<<'. # # Default: true align_left_shift = true # true/false +# Whether to align comma-separated statements following '<<' (as used to +# initialize Eigen matrices). +align_eigen_comma_init = false # true/false + # Whether to align text after 'asm volatile ()' colons. align_asm_colon = false # true/false +# (OC) Span for aligning parameters in an Objective-C message call +# on the ':'. +# +# 0: Don't align. +align_oc_msg_colon_span = 0 # unsigned number + +# (OC) Whether to always align with the first parameter, even if it is too +# short. +align_oc_msg_colon_first = false # true/false + +# (OC) Whether to align parameters in an Objective-C '+' or '-' declaration +# on the ':'. +align_oc_decl_colon = false # true/false + +# (OC) Whether to not align parameters in an Objectve-C message call if first +# colon is not on next line of the message call (the same way Xcode does +# aligment) +align_oc_msg_colon_xcode_like = false # true/false + # # Comment modification options # @@ -2046,9 +2792,44 @@ cmt_width = 0 # unsigned number # # 0: No reflowing (apart from the line wrapping due to cmt_width) (default) # 1: No touching at all -# 2: Full reflow +# 2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width) cmt_reflow_mode = 0 # unsigned number +# Path to a file that contains regular expressions describing patterns for +# which the end of one line and the beginning of the next will be folded into +# the same sentence or paragraph during full comment reflow. The regular +# expressions are described using ECMAScript syntax. The syntax for this +# specification is as follows, where "..." indicates the custom regular +# expression and "n" indicates the nth end_of_prev_line_regex and +# beg_of_next_line_regex regular expression pair: +# +# end_of_prev_line_regex[1] = "...$" +# beg_of_next_line_regex[1] = "^..." +# end_of_prev_line_regex[2] = "...$" +# beg_of_next_line_regex[2] = "^..." +# . +# . +# . +# end_of_prev_line_regex[n] = "...$" +# beg_of_next_line_regex[n] = "^..." +# +# Note that use of this option overrides the default reflow fold regular +# expressions, which are internally defined as follows: +# +# end_of_prev_line_regex[1] = "[\w,\]\)]$" +# beg_of_next_line_regex[1] = "^[\w,\[\(]" +# end_of_prev_line_regex[2] = "\.$" +# beg_of_next_line_regex[2] = "^[A-Z]" +cmt_reflow_fold_regex_file = "" # string + +# Whether to indent wrapped lines to the start of the encompassing paragraph +# during full comment reflow (cmt_reflow_mode = 2). Overrides the value +# specified by cmt_sp_after_star_cont. +# +# Note that cmt_align_doxygen_javadoc_tags overrides this option for +# paragraphs associated with javadoc tags +cmt_reflow_indent_to_paragraph_start = false # true/false + # Whether to convert all tabs to spaces in comments. If false, tabs in # comments are left alone, unless used for indenting. cmt_convert_tab_to_spaces = true # true/false @@ -2059,6 +2840,25 @@ cmt_convert_tab_to_spaces = true # true/false # Default: true cmt_indent_multi = true # true/false +# Whether to align doxygen javadoc-style tags ('@param', '@return', etc.) +# and corresponding fields such that groups of consecutive block tags, +# parameter names, and descriptions align with one another. Overrides that +# which is specified by the cmt_sp_after_star_cont. If cmt_width > 0, it may +# be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2 +# in order to achieve the desired alignment for line-wrapping. +cmt_align_doxygen_javadoc_tags = false # true/false + +# The number of spaces to insert after the star and before doxygen +# javadoc-style tags (@param, @return, etc). Requires enabling +# cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the +# cmt_sp_after_star_cont. +# +# Default: 1 +cmt_sp_before_doxygen_javadoc_tags = 1 # unsigned number + +# Whether to change trailing, single-line c-comments into cpp-comments. +cmt_trailing_single_line_c_to_cpp = false # true/false + # Whether to group c-comments that look like they are in a block. cmt_c_group = false # true/false @@ -2132,10 +2932,17 @@ cmt_insert_func_header = "" # string # that will be replaced with the class name. cmt_insert_class_header = "" # string +# Path to a file that contains text to insert before an Objective-C message +# specification, if the method isn't preceded by a C/C++ comment. If the +# inserted text contains '$(message)' or '$(javaparam)', these will be +# replaced with, respectively, the name of the function, or the javadoc +# '@param' and '@return' stuff. +cmt_insert_oc_msg_header = "" # string + # Whether a comment should be inserted if a preprocessor is encountered when # stepping backwards from a function name. # -# Applies to cmt_insert_func_header and +# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and # cmt_insert_class_header. cmt_insert_before_preproc = false # true/false @@ -2158,17 +2965,17 @@ cmt_insert_before_ctor_dtor = false # true/false # # Add or remove braces on a single-line 'do' statement. -mod_full_brace_do = ignore # ignore/add/remove/force +mod_full_brace_do = ignore # ignore/add/remove/force/not_defined # Add or remove braces on a single-line 'for' statement. -mod_full_brace_for = ignore # ignore/add/remove/force +mod_full_brace_for = ignore # ignore/add/remove/force/not_defined # (Pawn) Add or remove braces on a single-line function definition. -mod_full_brace_function = ignore # ignore/add/remove/force +mod_full_brace_function = ignore # ignore/add/remove/force/not_defined # Add or remove braces on a single-line 'if' statement. Braces will not be # removed if the braced statement contains an 'else'. -mod_full_brace_if = ignore # ignore/add/remove/force +mod_full_brace_if = ignore # ignore/add/remove/force/not_defined # Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either # have, or do not have, braces. If true, braces will be added if any block @@ -2184,10 +2991,10 @@ mod_full_brace_if_chain = false # true/false mod_full_brace_if_chain_only = false # true/false # Add or remove braces on single-line 'while' statement. -mod_full_brace_while = ignore # ignore/add/remove/force +mod_full_brace_while = ignore # ignore/add/remove/force/not_defined # Add or remove braces on single-line 'using ()' statement. -mod_full_brace_using = ignore # ignore/add/remove/force +mod_full_brace_using = ignore # ignore/add/remove/force/not_defined # Don't remove braces around statements that span N newlines mod_full_brace_nl = 0 # unsigned number @@ -2209,18 +3016,21 @@ mod_full_brace_nl = 0 # unsigned number mod_full_brace_nl_block_rem_mlcond = false # true/false # Add or remove unnecessary parenthesis on 'return' statement. -mod_paren_on_return = ignore # ignore/add/remove/force +mod_paren_on_return = ignore # ignore/add/remove/force/not_defined # (Pawn) Whether to change optional semicolons to real semicolons. mod_pawn_semicolon = false # true/false # Whether to fully parenthesize Boolean expressions in 'while' and 'if' -# statement, as in 'if (a && b > c)' → 'if (a && (b > c))'. +# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'. mod_full_paren_if_bool = false # true/false # Whether to remove superfluous semicolons. mod_remove_extra_semicolon = false # true/false +# Whether to remove duplicate include. +mod_remove_duplicate_include = true # true/false + # If a function body exceeds the specified number of newlines and doesn't have # a comment after the close brace, a comment will be added. mod_add_long_function_closebrace_comment = 0 # unsigned number @@ -2245,28 +3055,80 @@ mod_add_long_ifdef_endif_comment = 0 # unsigned number # doesn't have a comment after the #else, a comment will be added. mod_add_long_ifdef_else_comment = 0 # unsigned number +# Whether to take care of the case by the mod_sort_xx options. +mod_sort_case_sensitive = false # true/false + # Whether to sort consecutive single-line 'import' statements. mod_sort_import = false # true/false +# (C#) Whether to sort consecutive single-line 'using' statements. +mod_sort_using = false # true/false + # Whether to sort consecutive single-line '#include' statements (C/C++) and # '#import' statements (Objective-C). Be aware that this has the potential to # break your code if your includes/imports have ordering dependencies. mod_sort_include = false # true/false +# Whether to prioritize '#include' and '#import' statements that contain +# filename without extension when sorting is enabled. +mod_sort_incl_import_prioritize_filename = false # true/false + +# Whether to prioritize '#include' and '#import' statements that does not +# contain extensions when sorting is enabled. +mod_sort_incl_import_prioritize_extensionless = false # true/false + +# Whether to prioritize '#include' and '#import' statements that contain +# angle over quotes when sorting is enabled. +mod_sort_incl_import_prioritize_angle_over_quotes = false # true/false + +# Whether to ignore file extension in '#include' and '#import' statements +# for sorting comparison. +mod_sort_incl_import_ignore_extension = false # true/false + +# Whether to group '#include' and '#import' statements when sorting is enabled. +mod_sort_incl_import_grouping_enabled = false # true/false + # Whether to move a 'break' that appears after a fully braced 'case' before -# the close brace, as in 'case X: { ... } break;' → 'case X: { ... break; }'. +# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'. mod_move_case_break = false # true/false # Add or remove braces around a fully braced case statement. Will only remove # braces if there are no variable declarations in the block. -mod_case_brace = ignore # ignore/add/remove/force +mod_case_brace = ignore # ignore/add/remove/force/not_defined # Whether to remove a void 'return;' that appears as the last statement in a # function. mod_remove_empty_return = false # true/false # Add or remove the comma after the last value of an enumeration. -mod_enum_last_comma = ignore # ignore/add/remove/force +mod_enum_last_comma = ignore # ignore/add/remove/force/not_defined + +# (OC) Whether to organize the properties. If true, properties will be +# rearranged according to the mod_sort_oc_property_*_weight factors. +mod_sort_oc_properties = false # true/false + +# (OC) Weight of a class property modifier. +mod_sort_oc_property_class_weight = 0 # number + +# (OC) Weight of 'atomic' and 'nonatomic'. +mod_sort_oc_property_thread_safe_weight = 0 # number + +# (OC) Weight of 'readwrite' when organizing properties. +mod_sort_oc_property_readwrite_weight = 0 # number + +# (OC) Weight of a reference type specifier ('retain', 'copy', 'assign', +# 'weak', 'strong') when organizing properties. +mod_sort_oc_property_reference_weight = 0 # number + +# (OC) Weight of getter type ('getter=') when organizing properties. +mod_sort_oc_property_getter_weight = 0 # number + +# (OC) Weight of setter type ('setter=') when organizing properties. +mod_sort_oc_property_setter_weight = 0 # number + +# (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified', +# 'null_resettable') when organizing properties. +mod_sort_oc_property_nullability_weight = 0 # number # # Preprocessor options @@ -2274,7 +3136,7 @@ mod_enum_last_comma = ignore # ignore/add/remove/force # Add or remove indentation of preprocessor directives inside #if blocks # at brace level 0 (file-level). -pp_indent = ignore # ignore/add/remove/force +pp_indent = ignore # ignore/add/remove/force/not_defined # Whether to indent #if/#else/#endif at the brace level. If false, these are # indented from column 1. @@ -2289,7 +3151,7 @@ pp_indent_at_level = false # true/false pp_indent_count = 1 # unsigned number # Add or remove space after # based on pp_level of #if blocks. -pp_space = ignore # ignore/add/remove/force +pp_space = ignore # ignore/add/remove/force/not_defined # Sets the number of spaces per level added with pp_space. pp_space_count = 0 # unsigned number @@ -2311,10 +3173,16 @@ pp_indent_if = 0 # number # Whether to indent the code between #if, #else and #endif. pp_if_indent_code = false # true/false +# Whether to indent the body of an #if that encompasses all the code in the file. +pp_indent_in_guard = false # true/false + # Whether to indent '#define' at the brace level. If false, these are # indented from column 1. pp_define_at_level = false # true/false +# Whether to indent '#include' at the brace level. +pp_include_at_level = false # true/false + # Whether to ignore the '#define' body while formatting. pp_ignore_define_body = false # true/false @@ -2396,6 +3264,11 @@ use_indent_continue_only_once = false # true/false # false: indentation will be used every time (default) indent_cpp_lambda_only_once = false # true/false +# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the +# historic behavior, but is probably not the desired behavior, so this is off +# by default. +use_sp_after_angle_always = false # true/false + # Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially, # this tries to format these so that they match Qt's normalized form (i.e. the # result of QMetaObject::normalizedSignature), which can slightly improve the @@ -2407,10 +3280,39 @@ indent_cpp_lambda_only_once = false # true/false # Default: true use_options_overriding_for_qt_macros = true # true/false +# If true: the form feed character is removed from the list of whitespace +# characters. See https://en.cppreference.com/w/cpp/string/byte/isspace. +use_form_feed_no_more_as_whitespace_character = false # true/false + # # Warn levels - 1: error, 2: warning (default), 3: note # +# (C#) Warning is given if doing tab-to-\t replacement and we have found one +# in a C# verbatim string literal. +# +# Default: 2 +warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number + +# Limit the number of loops. +# Used by uncrustify.cpp to exit from infinite loop. +# 0: no limit. +debug_max_number_of_loops = 0 # number + +# Set the number of the line to protocol; +# Used in the function prot_the_line if the 2. parameter is zero. +# 0: nothing protocol. +debug_line_number_to_protocol = 0 # number + +# Set the number of second(s) before terminating formatting the current file, +# 0: no timeout. +# only for linux +debug_timeout = 0 # number + +# Set the number of characters to be printed if the text is too long, +# 0: do not truncate. +debug_truncate = 0 # unsigned number + # Meaning of the settings: # Ignore - do not do any changes # Add - makes sure there is 1 or more space/brace/newline/etc @@ -2426,7 +3328,7 @@ use_options_overriding_for_qt_macros = true # true/false # `set BOOL __AND__ __OR__` # # tokenTypes are defined in src/token_enum.h, use them without the -# 'CT_' prefix: 'CT_BOOL' → 'BOOL' +# 'CT_' prefix: 'CT_BOOL' => 'BOOL' # # # - Token(s) can be treated as type(s) with the 'type' option. @@ -2450,7 +3352,7 @@ use_options_overriding_for_qt_macros = true # true/false # `file_ext CPP .ch .cxx .cpp.in` # # langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use -# them without the 'LANG_' prefix: 'LANG_CPP' → 'CPP' +# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP' # # # - Custom macro-based indentation can be set up using 'macro-open', @@ -2465,3 +3367,6 @@ use_options_overriding_for_qt_macros = true # true/false # # option(s) with 'not default' value: 0 # + +type QWindow +type QQuickItem diff --git a/examples/gallery/main.cpp b/examples/gallery/main.cpp index 4e5d278c..58e52f7a 100644 --- a/examples/gallery/main.cpp +++ b/examples/gallery/main.cpp @@ -33,7 +33,7 @@ namespace connect( this, &QskTabView::currentIndexChanged, this, &TabView::updateViewPanel ); - } + } protected: void aboutToShow() override @@ -48,7 +48,7 @@ namespace We should have a better way to set individual colors for each tab page background */ - + if ( auto page = dynamic_cast< const ::Page* >( currentItem() ) ) setGradientHint( QskTabView::Page, page->gradient() ); } diff --git a/examples/iotdashboard/LightDisplay.cpp b/examples/iotdashboard/LightDisplay.cpp index 0e349197..7c345a11 100644 --- a/examples/iotdashboard/LightDisplay.cpp +++ b/examples/iotdashboard/LightDisplay.cpp @@ -165,14 +165,15 @@ bool LightDisplay::arcContainsPoint( const QRectF& rect, const QPointF& point ) const int tolerance = 20; // 1. check angle - QPointF circlePos( point.x() - rect.center().x(), - rect.center().y() - point.y() ); + QPointF circlePos( + point.x() - rect.center().x(), + rect.center().y() - point.y() ); const qreal angle = angleFromPoint( rect, point ); const bool angleWithinRange = angleInRange( metrics, angle ) - || angleDiff( angle, metrics.startAngle() ) <= tolerance - || angleDiff( angle, metrics.endAngle() ) <= tolerance; + || angleDiff( angle, metrics.startAngle() ) <= tolerance + || angleDiff( angle, metrics.endAngle() ) <= tolerance; // 2. check whether point is on arc const qreal radiusMax = rect.width() / 2; @@ -181,7 +182,7 @@ bool LightDisplay::arcContainsPoint( const QRectF& rect, const QPointF& point ) const qreal polarRadius = qSqrt( qPow( circlePos.x(), 2 ) + qPow( circlePos.y(), 2 ) ); const bool pointOnArc = ( polarRadius + tolerance ) > radiusMin - && ( polarRadius - tolerance ) < radiusMax; + && ( polarRadius - tolerance ) < radiusMax; bool ret = angleWithinRange && pointOnArc; diff --git a/examples/iotdashboard/LightDisplaySkinlet.cpp b/examples/iotdashboard/LightDisplaySkinlet.cpp index 0219985c..887dee62 100644 --- a/examples/iotdashboard/LightDisplaySkinlet.cpp +++ b/examples/iotdashboard/LightDisplaySkinlet.cpp @@ -33,15 +33,15 @@ QRectF LightDisplaySkinlet::subControlRect( const QskSkinnable* skinnable, QRectF rect = contentsRect; const qreal ticksSpacing = 4; // space between the ticks and the arc - if( subControl == LightDisplay::Groove - || subControl == LightDisplay::Panel ) + if( subControl == LightDisplay::Groove || subControl == LightDisplay::Panel ) { QSizeF textSize = textLabelsSize( display ); QskArcMetrics arcMetrics = display->arcMetricsHint( LightDisplay::ColdAndWarmArc ); const qreal ticksWidth = display->arcMetricsHint( LightDisplay::Tickmarks ).width() + ticksSpacing; const qreal x = textSize.width() + arcMetrics.width() + ticksWidth; - const qreal w = contentsRect.width() - ( 2 * ( textSize.width() + arcMetrics.width() + ticksWidth ) ); + const qreal w = contentsRect.width() - + ( 2 * ( textSize.width() + arcMetrics.width() + ticksWidth ) ); const qreal y = arcMetrics.width() + ticksWidth; const qreal h = contentsRect.height() - 2 * ( arcMetrics.width() + ticksWidth ); @@ -52,24 +52,24 @@ QRectF LightDisplaySkinlet::subControlRect( const QskSkinnable* skinnable, } else if( subControl == LightDisplay::ColdAndWarmArc ) { - const QRectF panelRect = subControlRect( skinnable, contentsRect, - LightDisplay::Panel ); + const QRectF panelRect = subControlRect( skinnable, contentsRect, LightDisplay::Panel ); auto barWidth = display->arcMetricsHint( LightDisplay::ColdAndWarmArc ).width(); auto rect = panelRect.marginsAdded( { barWidth, barWidth, barWidth, barWidth } ); return rect; } else if( subControl == LightDisplay::Tickmarks ) { - const QRectF arcRect = subControlRect( skinnable, contentsRect, - LightDisplay::ColdAndWarmArc ); - const qreal ticksWidth = display->arcMetricsHint( LightDisplay::Tickmarks ).width() + ticksSpacing; - const QRectF rect = arcRect.marginsAdded( { ticksWidth, ticksWidth, ticksWidth, ticksWidth } ); + const QRectF arcRect = subControlRect( + skinnable, contentsRect, LightDisplay::ColdAndWarmArc ); + const qreal ticksWidth = display->arcMetricsHint( + LightDisplay::Tickmarks ).width() + ticksSpacing; + const QRectF rect = + arcRect.marginsAdded( { ticksWidth, ticksWidth, ticksWidth, ticksWidth } ); return rect; } else if( subControl == LightDisplay::ValueText ) { - QRectF valueTextRect = subControlRect( skinnable, contentsRect, - LightDisplay::Panel ); + QRectF valueTextRect = subControlRect( skinnable, contentsRect, LightDisplay::Panel ); const QFontMetricsF fm( skinnable->effectiveFont( subControl ) ); const qreal fontWidth = fm.width( QStringLiteral( "100 %" ) ); const QPointF center = valueTextRect.center(); @@ -175,7 +175,7 @@ QSGNode* LightDisplaySkinlet::updateSubNode( int tickLineWidth = display->metric( LightDisplay::Tickmarks ); ticksNode->update( color, ticksRect, arcMetrics, boundaries, - tickmarks, tickLineWidth, Qt::Horizontal ); + tickmarks, tickLineWidth, Qt::Horizontal ); return ticksNode; } diff --git a/examples/iotdashboard/ShadowedBox.cpp b/examples/iotdashboard/ShadowedBox.cpp index 1422d087..92f2f2d7 100644 --- a/examples/iotdashboard/ShadowedBox.cpp +++ b/examples/iotdashboard/ShadowedBox.cpp @@ -125,7 +125,7 @@ QColor ShadowedBox::shadowColor() const return m_shadowColor; } -QRectF ShadowedBox::layoutRectForSize( const QSizeF &size ) const +QRectF ShadowedBox::layoutRectForSize( const QSizeF& size ) const { auto padding = paddingHint( Panel ); return { padding.left() / 2, padding.top() / 2, diff --git a/examples/iotdashboard/nodes/BoxShadowNode.cpp b/examples/iotdashboard/nodes/BoxShadowNode.cpp index dee3da36..db9ea9fd 100644 --- a/examples/iotdashboard/nodes/BoxShadowNode.cpp +++ b/examples/iotdashboard/nodes/BoxShadowNode.cpp @@ -46,9 +46,9 @@ namespace int compare( const QSGMaterial* other ) const override; - QVector2D aspect = QVector2D{1.0, 1.0}; + QVector2D aspect = QVector2D{ 1.0, 1.0 }; float blurExtent = 0.0; - QVector4D radius = QVector4D{0.0, 0.0, 0.0, 0.0}; + QVector4D radius = QVector4D{ 0.0, 0.0, 0.0, 0.0 }; QColor color = Qt::black; }; diff --git a/playground/grids/main.cpp b/playground/grids/main.cpp index b16c5fd0..40dd8a8a 100644 --- a/playground/grids/main.cpp +++ b/playground/grids/main.cpp @@ -391,7 +391,7 @@ int main( int argc, char** argv ) #if 1 /* - we don't need the fonts, but by calling something from + we don't need the fonts, but by calling something from the support library initializations regarding the skins are loaded. TODO ... */ diff --git a/playground/shadows/BoxShadowNode.cpp b/playground/shadows/BoxShadowNode.cpp index f1a5ef1a..5cd25712 100644 --- a/playground/shadows/BoxShadowNode.cpp +++ b/playground/shadows/BoxShadowNode.cpp @@ -46,9 +46,9 @@ namespace int compare( const QSGMaterial* other ) const override; - QVector2D aspect = QVector2D{1.0, 1.0}; + QVector2D aspect = QVector2D{ 1.0, 1.0 }; float blurExtent = 0.0; - QVector4D radius = QVector4D{0.0, 0.0, 0.0, 0.0}; + QVector4D radius = QVector4D{ 0.0, 0.0, 0.0, 0.0 }; QColor color = Qt::black; }; diff --git a/src/common/QskArcMetrics.h b/src/common/QskArcMetrics.h index 2ff493ee..f1bee7eb 100644 --- a/src/common/QskArcMetrics.h +++ b/src/common/QskArcMetrics.h @@ -24,7 +24,7 @@ class QSK_EXPORT QskArcMetrics public: constexpr QskArcMetrics() noexcept; constexpr QskArcMetrics( qreal width, qreal startAngle, qreal spanAngle, - Qt::SizeMode = Qt::AbsoluteSize ) noexcept; + Qt::SizeMode = Qt::AbsoluteSize ) noexcept; bool operator==( const QskArcMetrics& ) const noexcept; bool operator!=( const QskArcMetrics& ) const noexcept; diff --git a/src/common/QskBoxHints.cpp b/src/common/QskBoxHints.cpp index a2f4db05..9f18e9f7 100644 --- a/src/common/QskBoxHints.cpp +++ b/src/common/QskBoxHints.cpp @@ -36,17 +36,17 @@ QskBoxHints QskBoxHints::interpolated( } #ifndef QT_NO_DEBUG_STREAM - + #include QDebug operator<<( QDebug debug, const QskBoxHints& hints ) -{ +{ debug << hints.shape << hints.borderMetrics << hints.borderColors << hints.gradient; return debug; } - + #endif #include "moc_QskBoxHints.cpp" diff --git a/src/common/QskFunctions.cpp b/src/common/QskFunctions.cpp index ded47fa5..d61ab688 100644 --- a/src/common/QskFunctions.cpp +++ b/src/common/QskFunctions.cpp @@ -122,7 +122,7 @@ QRectF qskValidOrEmptyInnerRect( const QRectF& rect, const QMarginsF& margins ) return QRectF( x, y, w, h ); } -QRectF qskInterpolatedRect( const QRectF &from, const QRectF &to, qreal progress ) +QRectF qskInterpolatedRect( const QRectF& from, const QRectF& to, qreal progress ) { if ( progress <= 0.0 ) return from; @@ -138,7 +138,7 @@ QRectF qskInterpolatedRect( const QRectF &from, const QRectF &to, qreal progress return QRectF( x, y, w, h ); } -QSizeF qskInterpolatedSize( const QSizeF &from, const QSizeF &to, qreal progress ) +QSizeF qskInterpolatedSize( const QSizeF& from, const QSizeF& to, qreal progress ) { if ( progress <= 0.0 ) return from; diff --git a/src/common/QskGradient.cpp b/src/common/QskGradient.cpp index 247369cb..5ac0554f 100644 --- a/src/common/QskGradient.cpp +++ b/src/common/QskGradient.cpp @@ -70,7 +70,7 @@ static inline bool qskIsVisible( const QskGradientStops& stops ) const auto& c = stop.color(); if ( c.isValid() && c.alpha() > 0 ) return true; - } + } return false; } @@ -182,7 +182,7 @@ static inline QskGradientStops qskExtractedStops( static inline QskGradientStops qskGradientStops( const QGradientStops& qtStops ) { QskGradientStops stops; - + for ( const auto& s : qtStops ) stops += QskGradientStop( s.first, s.second ); diff --git a/src/controls/QskEvent.cpp b/src/controls/QskEvent.cpp index e349e619..fb09bca5 100644 --- a/src/controls/QskEvent.cpp +++ b/src/controls/QskEvent.cpp @@ -92,7 +92,7 @@ qreal qskWheelSteps( const QWheelEvent* event ) const auto angleDelta = event->angleDelta(); const qreal delta = angleDelta.y() ? angleDelta.y() : angleDelta.x(); - return delta / QWheelEvent::DefaultDeltasPerStep; + return delta / QWheelEvent::DefaultDeltasPerStep; } qreal qskWheelIncrement( const QWheelEvent* event ) @@ -109,7 +109,7 @@ qreal qskWheelIncrement( const QWheelEvent* event ) angleDelta.setY( -angleDelta.y() ); const qreal delta = angleDelta.y() ? angleDelta.y() : angleDelta.x(); - return delta / QWheelEvent::DefaultDeltasPerStep; + return delta / QWheelEvent::DefaultDeltasPerStep; } #endif @@ -119,7 +119,7 @@ bool qskIsStandardKeyInput( const QKeyEvent* event, QKeySequence::StandardKey ke #if 1 return event->matches( key ); #else - constexpr auto mask = ~(Qt::KeypadModifier | Qt::GroupSwitchModifier); + constexpr auto mask = ~( Qt::KeypadModifier | Qt::GroupSwitchModifier ); // We should route this call through the skin. TODO const auto theme = QGuiApplicationPrivate::platformTheme(); diff --git a/src/controls/QskMenu.cpp b/src/controls/QskMenu.cpp index e6ae839d..7e61f9a7 100644 --- a/src/controls/QskMenu.cpp +++ b/src/controls/QskMenu.cpp @@ -278,14 +278,14 @@ void QskMenu::traverse( int steps ) if ( hasAnimationHint( Cursor | QskAspect::Position | QskAspect::Metric ) ) { - // when cycling we want slide in + // when cycling we want slide in if ( index < 0 ) setPositionHint( Cursor, count() ); if ( index >= count() ) setPositionHint( Cursor, -1 ); - + movePositionHint( Cursor, newIndex ); } diff --git a/src/controls/QskMenuSkinlet.cpp b/src/controls/QskMenuSkinlet.cpp index cd29b528..ee8c0565 100644 --- a/src/controls/QskMenuSkinlet.cpp +++ b/src/controls/QskMenuSkinlet.cpp @@ -52,7 +52,8 @@ class QskMenuSkinlet::PrivateData { m_data->enableCache( false ); } - private: + + private: PrivateData* m_data; }; diff --git a/src/controls/QskPageIndicator.cpp b/src/controls/QskPageIndicator.cpp index 50ff5b82..0b7f89f0 100644 --- a/src/controls/QskPageIndicator.cpp +++ b/src/controls/QskPageIndicator.cpp @@ -29,10 +29,10 @@ static int qskKeyIncrement( if ( key == Qt::Key_Left ) return mirrored ? 1 : -1; - + if ( key == Qt::Key_Right ) return mirrored ? -1 : 1; - } + } else { if ( key == Qt::Key_Up ) @@ -40,10 +40,10 @@ static int qskKeyIncrement( if ( key == Qt::Key_Down ) return 1; - } - + } + return 0; -} +} class QskPageIndicator::PrivateData @@ -145,8 +145,8 @@ qreal QskPageIndicator::valueRatioAt( int index ) const const qreal diff = 1.0 - std::abs( pos - index ); return std::max( diff, 0.0 ); - } - + } + return 0.0; } @@ -205,7 +205,7 @@ void QskPageIndicator::mouseReleaseEvent( QMouseEvent* event ) if ( indexAtPosition( pos ) == index ) Q_EMIT pageRequested( index ); } - + return; } diff --git a/src/controls/QskPageIndicatorSkinlet.cpp b/src/controls/QskPageIndicatorSkinlet.cpp index adc4b715..90a7b52c 100644 --- a/src/controls/QskPageIndicatorSkinlet.cpp +++ b/src/controls/QskPageIndicatorSkinlet.cpp @@ -44,7 +44,7 @@ static QRectF qskBulletRect( const QskPageIndicator* indicator, { const auto maxWidth = n * size.width() + ( n - 1 ) * spacing; const auto r = qskAlignedRectF( rect, maxWidth, size.height(), alignment ); - + x = r.x() + index * ( size.width() + spacing ); y = r.y(); } @@ -52,7 +52,7 @@ static QRectF qskBulletRect( const QskPageIndicator* indicator, { const auto maxHeight = n * size.height() + ( n - 1 ) * spacing; const auto r = qskAlignedRectF( rect, maxHeight, size.height(), alignment ); - + x = r.x(); y = r.y() + index * ( size.height() + spacing );; } diff --git a/src/controls/QskPopup.cpp b/src/controls/QskPopup.cpp index 0c06b00e..49533dbd 100644 --- a/src/controls/QskPopup.cpp +++ b/src/controls/QskPopup.cpp @@ -382,7 +382,7 @@ bool QskPopup::hasFaderEffect() const void QskPopup::setPopupFlags( PopupFlags flags ) { - if ( static_cast(flags) != m_data->flags ) + if ( static_cast< int >( flags ) != m_data->flags ) { m_data->flags = flags; updateInputGrabber(); @@ -654,7 +654,7 @@ int QskPopup::execPopup() if ( popup->isOpen() || popup->isFading() ) return; } - + QEventLoop::exit( 0 ); } }; @@ -679,10 +679,10 @@ int QskPopup::execPopup() } if ( auto mouseGrabber = window()->mouseGrabberItem() ) - { + { // when being called from QQuickWindow::mouseReleaseEvent // the mouse grabber has not yet been released. - + if( !qskIsAncestorOf( this, mouseGrabber ) ) qskUngrabMouse( mouseGrabber ); } diff --git a/src/controls/QskSkinnable.cpp b/src/controls/QskSkinnable.cpp index 9c9d8726..5c4cc850 100644 --- a/src/controls/QskSkinnable.cpp +++ b/src/controls/QskSkinnable.cpp @@ -209,8 +209,7 @@ static inline QskAspect qskSubstitutedAspect( if ( aspect.hasStates() ) { qWarning() << "QskSkinnable::(re)setSkinHint: setting hints with states " - "is discouraged - use QskSkinTableEditor if you are " - "sure, that you need this."; + "is discouraged - use QskSkinTableEditor if you are sure, that you need this."; qWarning() << "QskAspect:" << aspect.stateless() << skinnable->skinStatesAsPrintable( aspect.states() ); diff --git a/src/dialogs/QskDialogButtonBox.cpp b/src/dialogs/QskDialogButtonBox.cpp index f15bcc6f..c54ab6e8 100644 --- a/src/dialogs/QskDialogButtonBox.cpp +++ b/src/dialogs/QskDialogButtonBox.cpp @@ -572,8 +572,8 @@ bool QskDialogButtonBox::isDefaultButtonKeyEvent( const QKeyEvent* event ) } else { - return ( event->key() == Qt::Key_Enter ) || - ( event->key() == Qt::Key_Return ); + return ( event->key() == Qt::Key_Enter ) + || ( event->key() == Qt::Key_Return ); } } diff --git a/src/inputpanel/QskHunspellTextPredictor.cpp b/src/inputpanel/QskHunspellTextPredictor.cpp index 5e7e920b..ecea9a9c 100644 --- a/src/inputpanel/QskHunspellTextPredictor.cpp +++ b/src/inputpanel/QskHunspellTextPredictor.cpp @@ -19,7 +19,8 @@ class QskHunspellTextPredictor::PrivateData QLocale locale; }; -QskHunspellTextPredictor::QskHunspellTextPredictor( const QLocale &locale, QObject* object ) +QskHunspellTextPredictor::QskHunspellTextPredictor( + const QLocale& locale, QObject* object ) : Inherited( object ) , m_data( new PrivateData() ) { @@ -43,7 +44,8 @@ void QskHunspellTextPredictor::reset() } } -QPair< QString, QString > QskHunspellTextPredictor::affAndDicFile( const QString& path, const QLocale& locale ) +QPair< QString, QString > QskHunspellTextPredictor::affAndDicFile( + const QString& path, const QLocale& locale ) { QString prefix = QStringLiteral( "%1/%2" ).arg( path, locale.name() ); QString affFile = prefix + QStringLiteral( ".aff" ); @@ -63,7 +65,7 @@ void QskHunspellTextPredictor::loadDictionaries() { QString userPaths = QString::fromUtf8( qgetenv( "QSK_HUNSPELL_PATH" ) ); -#if defined(Q_OS_WIN32) +#if defined( Q_OS_WIN32 ) QChar separator( ';' ); QStringList defaultPaths; #else @@ -106,7 +108,7 @@ void QskHunspellTextPredictor::request( const QString& text ) char** suggestions; - QTextCodec *codec = QTextCodec::codecForName( m_data->hunspellEncoding ); + const auto codec = QTextCodec::codecForName( m_data->hunspellEncoding ); const QByteArray word = codec ? codec->fromUnicode( text ) : text.toUtf8(); const int count = Hunspell_suggest( diff --git a/src/inputpanel/QskInputContext.cpp b/src/inputpanel/QskInputContext.cpp index 2087eb28..98b5eaf6 100644 --- a/src/inputpanel/QskInputContext.cpp +++ b/src/inputpanel/QskInputContext.cpp @@ -318,7 +318,7 @@ QskInputContextFactory* QskInputContext::factory() const return m_data->factory; } -std::shared_ptr QskInputContext::textPredictor( const QLocale& locale ) +std::shared_ptr< QskTextPredictor > QskInputContext::textPredictor( const QLocale& locale ) { if ( m_data->factory ) return m_data->factory->setupPredictor( locale ); @@ -550,12 +550,12 @@ std::shared_ptr< QskTextPredictor > QskInputContextFactory::setupPredictor( cons QskTextPredictor* QskInputContextFactory::createPredictor( const QLocale& locale ) { #if HUNSPELL - return new QskHunspellTextPredictor( locale ); + return new QskHunspellTextPredictor( locale ); #else Q_UNUSED( locale ); #endif - return nullptr; + return nullptr; } QskInputPanel* QskInputContextFactory::createPanel() const diff --git a/src/inputpanel/QskInputPanel.cpp b/src/inputpanel/QskInputPanel.cpp index bcad0e63..be5c4268 100644 --- a/src/inputpanel/QskInputPanel.cpp +++ b/src/inputpanel/QskInputPanel.cpp @@ -369,10 +369,7 @@ QskInputPanel::QskInputPanel( QQuickItem* parent ) this, &QskInputPanel::updateLocale ); connect( &m_data->keyProcessor, &KeyProcessor::keyProcessingFinished, - this, [this]( const Result& result ) - { - m_data->handleKeyProcessingFinished( result ); - } ); + this, [this]( const Result& result ) { m_data->handleKeyProcessingFinished( result ); } ); updateLocale( locale() ); } @@ -489,9 +486,9 @@ void QskInputPanel::resetPredictor( const QLocale& locale ) { // text predictor lives in another thread, so these will all be QueuedConnections: connect( this, &QskInputPanel::predictionReset, - predictor.get(), &QskTextPredictor::reset ); + predictor.get(), &QskTextPredictor::reset ); connect( this, &QskInputPanel::predictionRequested, - predictor.get(), &QskTextPredictor::request ); + predictor.get(), &QskTextPredictor::request ); connect( predictor.get(), &QskTextPredictor::predictionChanged, this, &QskInputPanel::updatePrediction ); diff --git a/src/inputpanel/QskInputPanel.h b/src/inputpanel/QskInputPanel.h index 66bd74c8..71381bc0 100644 --- a/src/inputpanel/QskInputPanel.h +++ b/src/inputpanel/QskInputPanel.h @@ -53,7 +53,7 @@ class QSK_EXPORT QskInputPanel : public QskControl virtual void attachItem( QQuickItem* ) = 0; private: - void updatePrediction( const QString &text, const QStringList &candidates ); + void updatePrediction( const QString&, const QStringList& candidates ); void resetPredictor( const QLocale& ); void updateLocale( const QLocale& ); diff --git a/src/nodes/QskBoxNode.cpp b/src/nodes/QskBoxNode.cpp index 586157ba..4e9847c6 100644 --- a/src/nodes/QskBoxNode.cpp +++ b/src/nodes/QskBoxNode.cpp @@ -118,7 +118,7 @@ void QskBoxNode::setBoxData( const QRectF& rect, if ( isFillMonochrome && isBorderMonochrome ) { if ( borderColors.gradient( Qsk::Left ).startColor() - == fillGradient.startColor() ) + == fillGradient.startColor() ) { // we can draw border and background in one hasBorder = false; diff --git a/src/nodes/QskBoxRendererEllipse.cpp b/src/nodes/QskBoxRendererEllipse.cpp index 2877e30e..a5dd34f9 100644 --- a/src/nodes/QskBoxRendererEllipse.cpp +++ b/src/nodes/QskBoxRendererEllipse.cpp @@ -561,9 +561,10 @@ namespace { } - void addAdditionalLines( float x11, float y11, float x12, float y12, // start line - float x21,float y21, float x22, float y22, // end line - const QskGradient& gradient, Line* lines ) + void addAdditionalLines( + float x11, float y11, float x12, float y12, // start line + float x21, float y21, float x22, float y22, // end line + const QskGradient& gradient, Line* lines ) { int additionalStopCount = additionalGradientStops( gradient ); @@ -712,35 +713,37 @@ namespace if( additionalGradientStops( borderMapTR.gradient() ) > 0 ) { float x1TR = c[ TopRight ].centerX + v.dx1( TopRight ), - y1TR = c[ TopRight ].centerY - v.dy1( TopRight ), - x2TR = c[ TopRight ].centerX + v.dx2( TopRight ), - y2TR = c[ TopRight ].centerY - v.dy2( TopRight ), + y1TR = c[ TopRight ].centerY - v.dy1( TopRight ), + x2TR = c[ TopRight ].centerX + v.dx2( TopRight ), + y2TR = c[ TopRight ].centerY - v.dy2( TopRight ), - x1TL = c[ TopLeft ].centerX - v.dx1( TopLeft ), - y1TL = c[ TopLeft ].centerY - v.dy1( TopLeft ), - x2TL = c[ TopLeft ].centerX - v.dx2( TopLeft ), - y2TL = c[ TopLeft ].centerY - v.dy2( TopLeft ); + x1TL = c[ TopLeft ].centerX - v.dx1( TopLeft ), + y1TL = c[ TopLeft ].centerY - v.dy1( TopLeft ), + x2TL = c[ TopLeft ].centerX - v.dx2( TopLeft ), + y2TL = c[ TopLeft ].centerY - v.dy2( TopLeft ); - addAdditionalLines( x1TR, y1TR, x2TR, y2TR, - x1TL, y1TL, x2TL, y2TL, - borderMapTR.gradient(), linesTR + k ); + addAdditionalLines( + x1TR, y1TR, x2TR, y2TR, + x1TL, y1TL, x2TL, y2TL, + borderMapTR.gradient(), linesTR + k ); } if( additionalGradientStops( borderMapBL.gradient() ) > 0 ) { float x1BL = c[ BottomLeft ].centerX - v.dx1( BottomLeft ), - y1BL = c[ BottomLeft ].centerY + v.dy1( BottomLeft ), - x2BL = c[ BottomLeft ].centerX - v.dx2( BottomLeft ), - y2BL = c[ BottomLeft ].centerY + v.dy2( BottomLeft ), + y1BL = c[ BottomLeft ].centerY + v.dy1( BottomLeft ), + x2BL = c[ BottomLeft ].centerX - v.dx2( BottomLeft ), + y2BL = c[ BottomLeft ].centerY + v.dy2( BottomLeft ), - x1BR = c[ BottomRight ].centerX + v.dx1( BottomRight ), - y1BR = c[ BottomRight ].centerY + v.dy1( BottomRight ), - x2BR = c[ BottomRight ].centerX + v.dx2( BottomRight ), - y2BR = c[ BottomRight ].centerY + v.dy2( BottomRight ); + x1BR = c[ BottomRight ].centerX + v.dx1( BottomRight ), + y1BR = c[ BottomRight ].centerY + v.dy1( BottomRight ), + x2BR = c[ BottomRight ].centerX + v.dx2( BottomRight ), + y2BR = c[ BottomRight ].centerY + v.dy2( BottomRight ); - addAdditionalLines( x1BL, y1BL, x2BL, y2BL, - x1BR, y1BR, x2BR, y2BR, - borderMapBL.gradient(), linesBL + k ); + addAdditionalLines( + x1BL, y1BL, x2BL, y2BL, + x1BR, y1BR, x2BR, y2BR, + borderMapBL.gradient(), linesBL + k ); } } @@ -749,35 +752,37 @@ namespace if( additionalGradientStops( borderMapTL.gradient() ) > 0 ) { float x1TL = c[ TopLeft ].centerX - v.dx1( TopLeft ), - y1TL = c[ TopLeft ].centerY - v.dy1( TopLeft ), - x2TL = c[ TopLeft ].centerX - v.dx2( TopLeft ), - y2TL = c[ TopLeft ].centerY - v.dy2( TopLeft ), + y1TL = c[ TopLeft ].centerY - v.dy1( TopLeft ), + x2TL = c[ TopLeft ].centerX - v.dx2( TopLeft ), + y2TL = c[ TopLeft ].centerY - v.dy2( TopLeft ), - x1BL = c[ BottomLeft ].centerX - v.dx1( BottomLeft ), - y1BL = c[ BottomLeft ].centerY + v.dy1( BottomLeft ), - x2BL = c[ BottomLeft ].centerX - v.dx2( BottomLeft ), - y2BL = c[ BottomLeft ].centerY + v.dy2( BottomLeft ); + x1BL = c[ BottomLeft ].centerX - v.dx1( BottomLeft ), + y1BL = c[ BottomLeft ].centerY + v.dy1( BottomLeft ), + x2BL = c[ BottomLeft ].centerX - v.dx2( BottomLeft ), + y2BL = c[ BottomLeft ].centerY + v.dy2( BottomLeft ); - addAdditionalLines( x1TL, y1TL, x2TL, y2TL, - x1BL, y1BL, x2BL, y2BL, - borderMapTL.gradient(), linesTL + j ); + addAdditionalLines( + x1TL, y1TL, x2TL, y2TL, + x1BL, y1BL, x2BL, y2BL, + borderMapTL.gradient(), linesTL + j ); } if( additionalGradientStops( borderMapBR.gradient() ) > 0 ) { float x1BR = c[ BottomRight ].centerX + v.dx1( BottomRight ), - y1BR = c[ BottomRight ].centerY + v.dy1( BottomRight ), - x2BR = c[ BottomRight ].centerX + v.dx2( BottomRight ), - y2BR = c[ BottomRight ].centerY + v.dy2( BottomRight ), + y1BR = c[ BottomRight ].centerY + v.dy1( BottomRight ), + x2BR = c[ BottomRight ].centerX + v.dx2( BottomRight ), + y2BR = c[ BottomRight ].centerY + v.dy2( BottomRight ), - x1TR = c[ TopRight ].centerX + v.dx1( TopRight ), - y1TR = c[ TopRight ].centerY - v.dy1( TopRight ), - x2TR = c[ TopRight ].centerX + v.dx2( TopRight ), - y2TR = c[ TopRight ].centerY - v.dy2( TopRight ); + x1TR = c[ TopRight ].centerX + v.dx1( TopRight ), + y1TR = c[ TopRight ].centerY - v.dy1( TopRight ), + x2TR = c[ TopRight ].centerX + v.dx2( TopRight ), + y2TR = c[ TopRight ].centerY - v.dy2( TopRight ); - addAdditionalLines( x1BR, y1BR, x2BR, y2BR, - x1TR, y1TR, x2TR, y2TR, - borderMapBR.gradient(), linesBR + j ); + addAdditionalLines( + x1BR, y1BR, x2BR, y2BR, + x1TR, y1TR, x2TR, y2TR, + borderMapBR.gradient(), linesBR + j ); } } } @@ -1011,17 +1016,13 @@ static inline void qskRenderBorder( const QskBoxRenderer::Metrics& metrics, const int stepCount = metrics.corner[ 0 ].stepCount; auto left = c.gradient( Qsk::Left ), top = c.gradient( Qsk::Top ), - right = c.gradient( Qsk::Right ), bottom = c.gradient( Qsk::Bottom ); + right = c.gradient( Qsk::Right ), bottom = c.gradient( Qsk::Bottom ); qskRenderBorderLines( metrics, orientation, line, - BorderMapGradient( stepCount, qskRgbGradientStart( top ), - qskRgbGradientEnd( left ), left ), - BorderMapGradient( stepCount, qskRgbGradientStart( right ), - qskRgbGradientEnd( top ), top ), - BorderMapGradient( stepCount, qskRgbGradientStart( left ), - qskRgbGradientEnd( bottom ), bottom ), - BorderMapGradient( stepCount, qskRgbGradientStart( bottom ), - qskRgbGradientEnd( right ), right ) ); + BorderMapGradient( stepCount, qskRgbGradientStart( top ), qskRgbGradientEnd( left ), left ), + BorderMapGradient( stepCount, qskRgbGradientStart( right ), qskRgbGradientEnd( top ), top ), + BorderMapGradient( stepCount, qskRgbGradientStart( left ), qskRgbGradientEnd( bottom ), bottom ), + BorderMapGradient( stepCount, qskRgbGradientStart( bottom ), qskRgbGradientEnd( right ), right ) ); } } @@ -1071,16 +1072,12 @@ static inline void qskRenderBoxRandom( const int n = metrics.corner[ 0 ].stepCount; auto left = bc.gradient( Qsk::Left ), top = bc.gradient( Qsk::Top ), - right = bc.gradient( Qsk::Right ), bottom = bc.gradient( Qsk::Bottom ); + right = bc.gradient( Qsk::Right ), bottom = bc.gradient( Qsk::Bottom ); - const BorderMapGradient tl( n, qskRgbGradientStart( top.startColor() ), - qskRgbGradientEnd( left.endColor() ), left ); - const BorderMapGradient tr( n, qskRgbGradientStart( right ), - qskRgbGradientEnd( top ), top ); - const BorderMapGradient bl( n, qskRgbGradientStart( left ), - qskRgbGradientEnd( bottom ), bottom ); - const BorderMapGradient br( n, qskRgbGradientStart( bottom ), - qskRgbGradientEnd( right ), right ); + const BorderMapGradient tl( n, qskRgbGradientStart( top.startColor() ), qskRgbGradientEnd( left.endColor() ), left ); + const BorderMapGradient tr( n, qskRgbGradientStart( right ), qskRgbGradientEnd( top ), top ); + const BorderMapGradient bl( n, qskRgbGradientStart( left ), qskRgbGradientEnd( bottom ), bottom ); + const BorderMapGradient br( n, qskRgbGradientStart( bottom ), qskRgbGradientEnd( right ), right ); if ( gradient.isMonochrome() ) { diff --git a/src/nodes/QskBoxRendererRect.cpp b/src/nodes/QskBoxRendererRect.cpp index fd4d6706..13d22cd8 100644 --- a/src/nodes/QskBoxRendererRect.cpp +++ b/src/nodes/QskBoxRendererRect.cpp @@ -623,9 +623,14 @@ void QskBoxRenderer::renderRect( auto fillLines = line + fillLineCount; if ( bc.isMonochrome() ) - qskCreateBorderMonochrome( rect, in, bc.gradient( Qsk::Left ).startColor().rgba(), fillLines ); + { + const auto rgb = bc.gradient( Qsk::Left ).startColor().rgba(); + qskCreateBorderMonochrome( rect, in, rgb, fillLines ); + } else + { qskCreateBorder( rect, in, bc, fillLines ); + } } }