aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2021-08-28 16:59:08 +0200
committerGitHub <noreply@github.com>2021-08-28 16:59:08 +0200
commit6fe670878bb69a6908c30641a75a0babc517ae2d (patch)
tree0a055ce35b4f7359d470172a29308bf4ad6fedd5
parent04938eed3e708d16b7973df1a53b55a2c5615f6c (diff)
parent2d240024acbd68c2d3f82bc72cb12b1a4928c6bf (diff)
downloadrneovim-6fe670878bb69a6908c30641a75a0babc517ae2d.tar.gz
rneovim-6fe670878bb69a6908c30641a75a0babc517ae2d.tar.bz2
rneovim-6fe670878bb69a6908c30641a75a0babc517ae2d.zip
Merge pull request #15465 from dundargoc/refactor/uncrustify
refactor(codebase): Update uncrustify config and apply it on one file screen.c The plan is to go through the codebase in batches, and remove the most egregious "make lint" backlog failures, by applying this config.
-rw-r--r--contrib/uncrustify.cfg3434
-rw-r--r--src/nvim/screen.c794
2 files changed, 2796 insertions, 1432 deletions
diff --git a/contrib/uncrustify.cfg b/contrib/uncrustify.cfg
index 11da34d59a..79923ffda0 100644
--- a/contrib/uncrustify.cfg
+++ b/contrib/uncrustify.cfg
@@ -1,1578 +1,2886 @@
-# Uncrustify 0.60
+# Uncrustify_d-0.73.0_f
#
# General options
#
-# The type of line endings
-newlines = auto # auto/lf/crlf/cr
+# The type of line endings.
+#
+# Default: auto
+newlines = auto # lf/crlf/cr/auto
-# The original size of tabs in the input
-input_tab_size = 8 # number
+# The original size of tabs in the input.
+#
+# Default: 8
+input_tab_size = 8 # unsigned number
-# The size of tabs in the output (only used if align_with_tabs=true)
-output_tab_size = 8 # number
+# The size of tabs in the output (only used if align_with_tabs=true).
+#
+# Default: 8
+output_tab_size = 8 # unsigned number
-# The ASCII value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
-string_escape_char = 92 # number
+# The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).
+#
+# Default: 92
+string_escape_char = 92 # unsigned number
-# Alternate string escape char for Pawn. Only works right before the quote char.
-string_escape_char2 = 0 # number
+# Alternate string escape char (usually only used for Pawn).
+# Only works right before the quote char.
+string_escape_char2 = 0 # unsigned number
-# Allow interpreting '>=' and '>>=' as part of a template in 'void f(list<list<B>>=val);'.
-# If true (default), 'assert(x<0 && y>=3)' will be broken.
+# Replace tab characters found in string literals with the escape sequence \t
+# instead.
+string_replace_tab_chars = false # true/false
+
+# Allow interpreting '>=' and '>>=' as part of a template in code like
+# 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
# Improvements to template detection may make this option obsolete.
-tok_split_gte = false # false/true
+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 = " *INDENT-OFF*" # string
+
+# Specify the marker used in comments to (re)enable processing in a file.
+#
+# Default: *INDENT-ON*
+enable_processing_cmt = " *INDENT-ON*" # string
+
+# Enable parsing of digraphs.
+enable_digraphs = false # true/false
-# Control what to do with the UTF-8 BOM (recommend 'remove')
-utf8_bom = ignore # ignore/add/remove/force
+# 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
-# If the file contains bytes with values between 128 and 255, but is not UTF-8, then output as UTF-8
-utf8_byte = false # false/true
+# Add or remove the UTF-8 BOM (recommend 'remove').
+utf8_bom = remove # ignore/add/remove/force/not_defined
-# Force the output encoding to UTF-8
-utf8_force = false # false/true
+# If the file contains bytes with values between 128 and 255, but is not
+# UTF-8, then output as UTF-8.
+utf8_byte = false # true/false
+
+# Force the output encoding to UTF-8.
+utf8_force = false # true/false
#
-# Indenting
+# Spacing options
#
-# The number of columns to indent per level.
-# Usually 2, 3, 4, or 8.
-indent_columns = 2 # number
+# Add or remove space around non-assignment symbolic operators ('+', '/', '%',
+# '<<', and so forth).
+sp_arith = ignore # ignore/add/remove/force/not_defined
-# The continuation indent. If non-zero, this overrides the indent of '(' and '=' continuation indents.
-# For FreeBSD, this is set to 4. Negative value is absolute and not increased for each ( level
-indent_continue = 0 # number
+# Add or remove space around arithmetic operators '+' and '-'.
+#
+# Overrides sp_arith.
+sp_arith_additive = ignore # ignore/add/remove/force/not_defined
-# How to use tabs when indenting code
-# 0=spaces only
-# 1=indent with tabs to brace level, align with spaces
-# 2=indent and align with tabs, using spaces when not on a tabstop
-indent_with_tabs = 0 # number
+# Add or remove space around assignment operator '=', '+=', etc.
+sp_assign = ignore # ignore/add/remove/force/not_defined
-# Comments that are not a brace level are indented with tabs on a tabstop.
-# Requires indent_with_tabs=2. If false, will use spaces.
-indent_cmt_with_tabs = false # false/true
+# Add or remove space around '=' in C++11 lambda capture specifications.
+#
+# Overrides sp_assign.
+sp_cpp_lambda_assign = ignore # ignore/add/remove/force/not_defined
-# Whether to indent strings broken by '\' so that they line up
-indent_align_string = true # false/true
+# Add or remove space after the capture specification of a C++11 lambda when
+# an argument list is present, as in '[] <here> (int x){ ... }'.
+sp_cpp_lambda_square_paren = ignore # ignore/add/remove/force/not_defined
-# The number of spaces to indent multi-line XML strings.
-# Requires indent_align_string=True
-indent_xml_string = 0 # number
+# Add or remove space after the capture specification of a C++11 lambda with
+# no argument list is present, as in '[] <here> { ... }'.
+sp_cpp_lambda_square_brace = ignore # ignore/add/remove/force/not_defined
-# Spaces to indent '{' from level
-indent_brace = 0 # number
+# Add or remove space after the opening parenthesis and before the closing
+# parenthesis of a argument list of a C++11 lambda, as in
+# '[]( <here> int x <here> ){ ... }'.
+sp_cpp_lambda_argument_list = ignore # ignore/add/remove/force/not_defined
-# Whether braces are indented to the body level
-indent_braces = false # false/true
+# Add or remove space after the argument list of a C++11 lambda, as in
+# '[](int x) <here> { ... }'.
+sp_cpp_lambda_paren_brace = ignore # ignore/add/remove/force/not_defined
-# Disabled indenting function braces if indent_braces is true
-indent_braces_no_func = false # false/true
+# Add or remove space between a lambda body and its call operator of an
+# immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
+sp_cpp_lambda_fparen = ignore # ignore/add/remove/force/not_defined
-# Disabled indenting class braces if indent_braces is true
-indent_braces_no_class = false # false/true
+# Add or remove space around assignment operator '=' in a prototype.
+#
+# If set to ignore, use sp_assign.
+sp_assign_default = ignore # ignore/add/remove/force/not_defined
-# Disabled indenting struct braces if indent_braces is true
-indent_braces_no_struct = false # false/true
+# Add or remove space before assignment operator '=', '+=', etc.
+#
+# Overrides sp_assign.
+sp_before_assign = ignore # ignore/add/remove/force/not_defined
-# Indent based on the size of the brace parent, i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
-indent_brace_parent = false # false/true
+# Add or remove space after assignment operator '=', '+=', etc.
+#
+# Overrides sp_assign.
+sp_after_assign = ignore # ignore/add/remove/force/not_defined
-# Whether the 'namespace' body is indented
-indent_namespace = false # false/true
+# Add or remove space in 'NS_ENUM ('.
+sp_enum_paren = ignore # ignore/add/remove/force/not_defined
-# The number of spaces to indent a namespace block
-indent_namespace_level = 0 # number
+# Add or remove space around assignment '=' in enum.
+sp_enum_assign = ignore # ignore/add/remove/force/not_defined
-# If the body of the namespace is longer than this number, it won't be indented.
-# Requires indent_namespace=true. Default=0 (no limit)
-indent_namespace_limit = 0 # number
+# Add or remove space before assignment '=' in enum.
+#
+# Overrides sp_enum_assign.
+sp_enum_before_assign = ignore # ignore/add/remove/force/not_defined
-# Whether the 'extern "C"' body is indented
-indent_extern = false # false/true
+# Add or remove space after assignment '=' in enum.
+#
+# Overrides sp_enum_assign.
+sp_enum_after_assign = ignore # ignore/add/remove/force/not_defined
-# Whether the 'class' body is indented
-indent_class = true # false/true
+# Add or remove space around assignment ':' in enum.
+sp_enum_colon = ignore # ignore/add/remove/force/not_defined
-# Whether to indent the stuff after a leading class colon
-indent_class_colon = true # false/true
+# Add or remove space around preprocessor '##' concatenation operator.
+#
+# Default: add
+sp_pp_concat = ignore # ignore/add/remove/force/not_defined
-# Virtual indent from the ':' for member initializers. Default is 2
-indent_ctor_init_leading = 2 # number
+# Add or remove space after preprocessor '#' stringify operator.
+# Also affects the '#@' charizing operator.
+sp_pp_stringify = ignore # ignore/add/remove/force/not_defined
-# Additional indenting for constructor initializer list
-indent_ctor_init = 0 # number
+# Add or remove space before preprocessor '#' stringify operator
+# as in '#define x(y) L#y'.
+sp_before_pp_stringify = ignore # ignore/add/remove/force/not_defined
-# False=treat 'else\nif' as 'else if' for indenting purposes
-# True=indent the 'if' one level
-indent_else_if = false # false/true
+# Add or remove space around boolean operators '&&' and '||'.
+sp_bool = ignore # ignore/add/remove/force/not_defined
-# Amount to indent variable declarations after an open brace. neg=relative, pos=absolute
-indent_var_def_blk = 0 # number
+# Add or remove space around compare operator '<', '>', '==', etc.
+sp_compare = ignore # ignore/add/remove/force/not_defined
-# Indent continued variable declarations instead of aligning.
-indent_var_def_cont = false # false/true
+# Add or remove space inside '(' and ')'.
+sp_inside_paren = ignore # ignore/add/remove/force/not_defined
-# True: force indentation of function definition to start in column 1
-# False: use the default behavior
-indent_func_def_force_col1 = false # false/true
+# Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
+sp_paren_paren = ignore # ignore/add/remove/force/not_defined
-# True: indent continued function call parameters one indent level
-# False: align parameters under the open paren
-indent_func_call_param = false # false/true
+# Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
+sp_cparen_oparen = ignore # ignore/add/remove/force/not_defined
-# Same as indent_func_call_param, but for function defs
-indent_func_def_param = false # false/true
+# Whether to balance spaces inside nested parentheses.
+sp_balance_nested_parens = false # true/false
-# Same as indent_func_call_param, but for function protos
-indent_func_proto_param = false # false/true
+# Add or remove space between ')' and '{'.
+sp_paren_brace = ignore # ignore/add/remove/force/not_defined
-# Same as indent_func_call_param, but for class declarations
-indent_func_class_param = false # false/true
+# Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
+sp_brace_brace = ignore # ignore/add/remove/force/not_defined
-# Same as indent_func_call_param, but for class variable constructors
-indent_func_ctor_var_param = false # false/true
+# Add or remove space before pointer star '*'.
+sp_before_ptr_star = ignore # ignore/add/remove/force/not_defined
-# Same as indent_func_call_param, but for templates
-indent_template_param = false # false/true
+# 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/not_defined
-# Double the indent for indent_func_xxx_param options
-indent_func_param_double = false # false/true
+# Add or remove space between pointer stars '*'.
+sp_between_ptr_star = ignore # ignore/add/remove/force/not_defined
-# Indentation column for standalone 'const' function decl/proto qualifier
-indent_func_const = 0 # number
+# Add or remove space after pointer star '*', if followed by a word.
+#
+# Overrides sp_type_func.
+sp_after_ptr_star = ignore # ignore/add/remove/force/not_defined
-# Indentation column for standalone 'throw' function decl/proto qualifier
-indent_func_throw = 0 # number
+# Add or remove space after pointer caret '^', if followed by a word.
+sp_after_ptr_block_caret = ignore # ignore/add/remove/force/not_defined
-# The number of spaces to indent a continued '->' or '.'
-# Usually set to 0, 1, or indent_columns.
-indent_member = 0 # number
+# Add or remove space after pointer star '*', if followed by a qualifier.
+sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force/not_defined
-# Spaces to indent single line ('//') comments on lines before code
-indent_sing_line_comments = 0 # number
+# Add or remove space after a pointer star '*', if followed by a function
+# prototype or function definition.
+#
+# Overrides sp_after_ptr_star and sp_type_func.
+sp_after_ptr_star_func = ignore # ignore/add/remove/force/not_defined
-# If set, will indent trailing single line ('//') comments relative
-# to the code instead of trying to keep the same absolute column
-indent_relative_single_line_comments = false # false/true
+# Add or remove space after a pointer star '*', if followed by an open
+# parenthesis, as in 'void* (*)().
+sp_ptr_star_paren = ignore # ignore/add/remove/force/not_defined
-# Spaces to indent 'case' from 'switch'
-# Usually 0 or indent_columns.
-indent_switch_case = 0 # number
+# Add or remove space before a pointer star '*', if followed by a function
+# prototype or function definition.
+sp_before_ptr_star_func = ignore # ignore/add/remove/force/not_defined
-# Spaces to shift the 'case' line, without affecting any other lines
-# Usually 0.
-indent_case_shift = 0 # number
+# Add or remove space before a reference sign '&'.
+sp_before_byref = ignore # ignore/add/remove/force/not_defined
-# Spaces to indent '{' from 'case'.
-# By default, the brace will appear under the 'c' in case.
-# Usually set to 0 or indent_columns.
-indent_case_brace = 0 # number
+# Add or remove space before a reference sign '&' that isn't followed by a
+# variable name. If set to ignore, sp_before_byref is used instead.
+sp_before_unnamed_byref = ignore # ignore/add/remove/force/not_defined
-# Whether to indent comments found in first column
-indent_col1_comment = true # false/true
+# Add or remove space after reference sign '&', if followed by a word.
+#
+# Overrides sp_type_func.
+sp_after_byref = ignore # ignore/add/remove/force/not_defined
-# How to indent goto labels
-# >0 : absolute column where 1 is the leftmost column
-# <=0 : subtract from brace indent
-indent_label = 0 # number
+# Add or remove space after a reference sign '&', if followed by a function
+# prototype or function definition.
+#
+# Overrides sp_after_byref and sp_type_func.
+sp_after_byref_func = ignore # ignore/add/remove/force/not_defined
-# Same as indent_label, but for access specifiers that are followed by a colon
-indent_access_spec = 1 # number
+# Add or remove space before a reference sign '&', if followed by a function
+# prototype or function definition.
+sp_before_byref_func = ignore # ignore/add/remove/force/not_defined
-# Indent the code after an access specifier by one level.
-# If set, this option forces 'indent_access_spec=0'
-indent_access_spec_body = false # false/true
+# 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 = ignore # ignore/add/remove/force/not_defined
-# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
-indent_paren_nl = false # false/true
+# Add or remove space between 'decltype(...)' and word,
+# brace or function call.
+sp_after_decltype = ignore # ignore/add/remove/force/not_defined
-# Controls the indent of a close paren after a newline.
-# 0: Indent to body level
-# 1: Align under the open paren
-# 2: Indent to the brace level
-indent_paren_close = 0 # number
+# Add or remove space between 'template' and '<'.
+# If set to ignore, sp_before_angle is used.
+sp_template_angle = ignore # ignore/add/remove/force/not_defined
-# Controls the indent of a comma when inside a paren.If TRUE, aligns under the open paren
-indent_comma_paren = false # false/true
+# Add or remove space before '<'.
+sp_before_angle = ignore # ignore/add/remove/force/not_defined
-# Controls the indent of a BOOL operator when inside a paren.If TRUE, aligns under the open paren
-indent_bool_paren = false # false/true
+# Add or remove space inside '<' and '>'.
+sp_inside_angle = ignore # ignore/add/remove/force/not_defined
-# If 'indent_bool_paren' is true, controls the indent of the first expression. If TRUE, aligns the first expression to the following ones
-indent_first_bool_expr = false # false/true
+# Add or remove space inside '<>'.
+sp_inside_angle_empty = ignore # ignore/add/remove/force/not_defined
-# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
-indent_square_nl = false # false/true
+# Add or remove space between '>' and ':'.
+sp_angle_colon = ignore # ignore/add/remove/force/not_defined
-# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
-indent_preserve_sql = false # false/true
+# Add or remove space after '>'.
+sp_after_angle = ignore # ignore/add/remove/force/not_defined
-# Align continued statements at the '='. Default=True
-# If FALSE or the '=' is followed by a newline, the next line is indent one tab.
-indent_align_assign = true # false/true
+# Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
+sp_angle_paren = ignore # ignore/add/remove/force/not_defined
-# Indent OC blocks at brace level instead of usual rules.
-indent_oc_block = false # false/true
+# Add or remove space between '>' and '()' as found in 'new List<byte>();'.
+sp_angle_paren_empty = ignore # ignore/add/remove/force/not_defined
-# Indent OC blocks in a message relative to the parameter name.
-# 0=use indent_oc_block rules, 1+=spaces to indent
-indent_oc_block_msg = 0 # number
+# Add or remove space between '>' and a word as in 'List<byte> m;' or
+# 'template <typename T> static ...'.
+sp_angle_word = ignore # ignore/add/remove/force/not_defined
-# Minimum indent for subsequent parameters
-indent_oc_msg_colon = 0 # number
+# Add or remove space between '>' and '>' in '>>' (template stuff).
+#
+# Default: add
+sp_angle_shift = ignore # ignore/add/remove/force/not_defined
+
+# (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
+# that sp_angle_shift cannot remove the space without this option.
+sp_permit_cpp11_shift = false # true/false
+
+# Add or remove space before '(' of control statements ('if', 'for', 'switch',
+# 'while', etc.).
+sp_before_sparen = ignore # ignore/add/remove/force/not_defined
+# Add or remove space inside '(' and ')' of control statements.
+sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '(' of control statements.
#
-# Spacing options
+# Overrides sp_inside_sparen.
+sp_inside_sparen_open = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before ')' of control statements.
#
+# Overrides sp_inside_sparen.
+sp_inside_sparen_close = ignore # ignore/add/remove/force/not_defined
-# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
-sp_arith = add # ignore/add/remove/force
+# Add or remove space between '((' or '))' of control statements.
+# sp_sparen_paren = ignore # ignore/add/remove/force/not_defined
-# Add or remove space around assignment operator '=', '+=', etc
-sp_assign = add # ignore/add/remove/force
+# Add or remove space after ')' of control statements.
+sp_after_sparen = ignore # ignore/add/remove/force/not_defined
-# Add or remove space around '=' in C++11 lambda capture specifications. Overrides sp_assign
-sp_cpp_lambda_assign = ignore # ignore/add/remove/force
+# Add or remove space between ')' and '{' of control statements.
+sp_sparen_brace = ignore # 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 between 'do' and '{'.
+sp_do_brace_open = ignore # ignore/add/remove/force/not_defined
-# Add or remove space around assignment operator '=' in a prototype
-sp_assign_default = ignore # ignore/add/remove/force
+# Add or remove space between '}' and 'while'.
+sp_brace_close_while = ignore # 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
+# Add or remove space between 'while' and '('. Overrides sp_before_sparen.
+sp_while_paren_open = 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
+# Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
+sp_special_semi = ignore # ignore/add/remove/force/not_defined
-# Add or remove space around assignment '=' in enum
-sp_enum_assign = add # ignore/add/remove/force
+# Add or remove space before ';'.
+#
+# Default: remove
+sp_before_semi = 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
+# Add or remove space before ';' in non-empty 'for' statements.
+sp_before_semi_for = 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
+# 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/not_defined
-# Add or remove space around preprocessor '##' concatenation operator. Default=Add
-sp_pp_concat = add # ignore/add/remove/force
+# Add or remove space after ';', except when followed by a comment.
+#
+# Default: add
+sp_after_semi = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator.
-sp_pp_stringify = add # ignore/add/remove/force
+# Add or remove space after ';' in non-empty 'for' statements.
+#
+# Default: force
+sp_after_semi_for = 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
+# Add or remove space after the final semicolon of an empty part of a for
+# statement, as in 'for ( ; ; <here> )'.
+sp_after_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-# Add or remove space around boolean operators '&&' and '||'
-sp_bool = add # ignore/add/remove/force
+# Add or remove space before '[' (except '[]').
+sp_before_square = ignore # ignore/add/remove/force/not_defined
-# Add or remove space around compare operator '<', '>', '==', etc
-sp_compare = add # ignore/add/remove/force
+# Add or remove space before '[' for a variable definition.
+#
+# Default: remove
+sp_before_vardef_square = ignore # ignore/add/remove/force/not_defined
-# Add or remove space inside '(' and ')'
-sp_inside_paren = remove # ignore/add/remove/force
+# Add or remove space before '[' for asm block.
+sp_before_square_asm_block = ignore # ignore/add/remove/force/not_defined
-# Add or remove space between nested parens
-sp_paren_paren = remove # ignore/add/remove/force
+# Add or remove space before '[]'.
+sp_before_squares = ignore # ignore/add/remove/force/not_defined
-# Whether to balance spaces inside nested parens
-sp_balance_nested_parens = false # false/true
+# 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 between ')' and '{'
-sp_paren_brace = add # ignore/add/remove/force
+# Add or remove space inside a non-empty '[' and ']'.
+sp_inside_square = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before pointer star '*'
-sp_before_ptr_star = add # ignore/add/remove/force
+# Add or remove space inside '[]'.
+sp_inside_square_empty = ignore # 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 = add # ignore/add/remove/force
+# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
+sp_after_comma = add # 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 before ','.
+#
+# Default: remove
+sp_before_comma = remove # ignore/add/remove/force/not_defined
-# Add or remove space after pointer star '*', if followed by a word.
-sp_after_ptr_star = remove # ignore/add/remove/force
+# Add or remove space between an open parenthesis and comma,
+# i.e. '(,' vs. '( ,'.
+#
+# Default: force
+sp_paren_comma = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after a pointer star '*', if followed by a func proto/def.
-sp_after_ptr_star_func = add # ignore/add/remove/force
+# Add or remove space before the variadic '...' when preceded by a
+# non-punctuator.
+sp_before_ellipsis = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after a pointer star '*', if followed by an open paren (function types).
-sp_ptr_star_paren = ignore # ignore/add/remove/force
+# Add or remove space between a type and '...'.
+sp_type_ellipsis = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before a pointer star '*', if followed by a func proto/def.
-sp_before_ptr_star_func = remove # ignore/add/remove/force
+# Add or remove space between ')' and '...'.
+sp_paren_ellipsis = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before a reference sign '&'
-sp_before_byref = remove # ignore/add/remove/force
+# Add or remove space between ')' and a qualifier such as 'const'.
+sp_paren_qualifier = ignore # 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
+# Add or remove space between ')' and 'noexcept'.
+sp_paren_noexcept = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after reference sign '&', if followed by a word.
-sp_after_byref = add # ignore/add/remove/force
+# Add or remove space after class ':'.
+sp_after_class_colon = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after a reference sign '&', if followed by a func proto/def.
-sp_after_byref_func = add # ignore/add/remove/force
+# Add or remove space before class ':'.
+sp_before_class_colon = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before a reference sign '&', if followed by a func proto/def.
-sp_before_byref_func = remove # ignore/add/remove/force
+# Add or remove space after class constructor ':'.
+sp_after_constr_colon = ignore # ignore/add/remove/force/not_defined
-# Add or remove space between type and word. Default=Force
-sp_after_type = add # ignore/add/remove/force
+# Add or remove space before class constructor ':'.
+sp_before_constr_colon = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before the paren in the D constructs 'template Foo(' and 'class Foo('.
-sp_before_template_paren = ignore # ignore/add/remove/force
+# Add or remove space before case ':'.
+#
+# Default: remove
+sp_before_case_colon = remove # ignore/add/remove/force/not_defined
-# Add or remove space in 'template <' vs 'template<'.
-# If set to ignore, sp_before_angle is used.
-sp_template_angle = ignore # ignore/add/remove/force
+# Add or remove space between 'operator' and operator sign.
+sp_after_operator = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before '<>'
-sp_before_angle = remove # ignore/add/remove/force
+# Add or remove space between the operator symbol and the open parenthesis, as
+# in 'operator ++('.
+sp_after_operator_sym = ignore # ignore/add/remove/force/not_defined
-# Add or remove space inside '<' and '>'
-sp_inside_angle = remove # ignore/add/remove/force
+# Overrides sp_after_operator_sym when the operator has no arguments, as in
+# 'operator *()'.
+sp_after_operator_sym_empty = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after '<>'
-sp_after_angle = remove # ignore/add/remove/force
+# Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
+# '(int)a' vs. '(int) a'.
+sp_after_cast = remove # ignore/add/remove/force/not_defined
-# Add or remove space between '<>' and '(' as found in 'new List<byte>();'
-sp_angle_paren = remove # ignore/add/remove/force
+# Add or remove spaces inside cast parentheses.
+sp_inside_paren_cast = ignore # ignore/add/remove/force/not_defined
-# Add or remove space between '<>' and a word as in 'List<byte> m;'
-sp_angle_word = remove # ignore/add/remove/force
+# Add or remove space between the type and open parenthesis in a C++ cast,
+# i.e. 'int(exp)' vs. 'int (exp)'.
+sp_cpp_cast_paren = ignore # ignore/add/remove/force/not_defined
-# Add or remove space between '>' and '>' in '>>' (template stuff C++/C# only). Default=Add
-sp_angle_shift = add # ignore/add/remove/force
+# Add or remove space between 'sizeof' and '('.
+sp_sizeof_paren = ignore # ignore/add/remove/force/not_defined
-# Permit removal of the space between '>>' in 'foo<bar<int> >' (C++11 only). Default=False
-# sp_angle_shift cannot remove the space without this option.
-sp_permit_cpp11_shift = false # false/true
+# Add or remove space between 'sizeof' and '...'.
+sp_sizeof_ellipsis = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
-sp_before_sparen = add # ignore/add/remove/force
+# Add or remove space between 'sizeof...' and '('.
+sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force/not_defined
-# Add or remove space inside if-condition '(' and ')'
-sp_inside_sparen = remove # ignore/add/remove/force
+# Add or remove space between 'decltype' and '('.
+sp_decltype_paren = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before if-condition ')'. Overrides sp_inside_sparen.
-sp_inside_sparen_close = ignore # ignore/add/remove/force
+# Add or remove space inside enum '{' and '}'.
+sp_inside_braces_enum = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before if-condition '('. Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force
+# Add or remove space inside struct/union '{' and '}'.
+sp_inside_braces_struct = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
-sp_after_sparen = ignore # ignore/add/remove/force
+# Add or remove space after open brace in an unnamed temporary
+# direct-list-initialization.
+sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
-# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
-sp_sparen_brace = add # ignore/add/remove/force
+# Add or remove space before close brace in an unnamed temporary
+# direct-list-initialization.
+sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
-# Add or remove space between 'invariant' and '(' in the D language.
-sp_invariant_paren = ignore # ignore/add/remove/force
+# Add or remove space inside an unnamed temporary direct-list-initialization.
+sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after the ')' in 'invariant (C) c' in the D language.
-sp_after_invariant_paren = ignore # ignore/add/remove/force
+# Add or remove space inside '{' and '}'.
+sp_inside_braces = add # ignore/add/remove/force/not_defined
-# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
-sp_special_semi = remove # ignore/add/remove/force
+# Add or remove space inside '{}'.
+sp_inside_braces_empty = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before ';'. Default=Remove
-sp_before_semi = remove # ignore/add/remove/force
+# Add or remove space around trailing return operator '->'.
+sp_trailing_return = ignore # ignore/add/remove/force/not_defined
-# Add or remove space before ';' in non-empty 'for' statements
-sp_before_semi_for = remove # ignore/add/remove/force
+# Add or remove space between return type and function name. A minimum of 1
+# is forced except for pointer return types.
+sp_type_func = 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 = remove # ignore/add/remove/force
+# Add or remove space between type and open brace of an unnamed temporary
+# direct-list-initialization.
+sp_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after ';', except when followed by a comment. Default=Add
-sp_after_semi = add # ignore/add/remove/force
+# Add or remove space between function name and '(' on function declaration.
+sp_func_proto_paren = ignore # 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
+# Add or remove space between function name and '()' on function declaration
+# without parameters.
+sp_func_proto_paren_empty = ignore # ignore/add/remove/force/not_defined
-# Add or remove space after the final semicolon of an empty part of a for statement: for ( ; ; <here> ).
-sp_after_semi_for_empty = remove # ignore/add/remove/force