diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2021-08-28 16:59:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-28 16:59:08 +0200 |
commit | 6fe670878bb69a6908c30641a75a0babc517ae2d (patch) | |
tree | 0a055ce35b4f7359d470172a29308bf4ad6fedd5 | |
parent | 04938eed3e708d16b7973df1a53b55a2c5615f6c (diff) | |
parent | 2d240024acbd68c2d3f82bc72cb12b1a4928c6bf (diff) | |
download | rneovim-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.cfg | 3434 | ||||
-rw-r--r-- | src/nvim/screen.c | 794 |
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 +# 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 before '[' (except '[]') -sp_before_square = remove # ignore/add/remove/force +# Add or remove space between alias name and '(' of a non-pointer function type typedef. +sp_func_def_paren = remove # ignore/add/remove/force/not_defined -# Add or remove space before '[]' -sp_before_squares = remove # ignore/add/remove/force +# Add or remove space between function name and '()' on function definition +# without parameters. +sp_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside a non-empty '[' and ']' -sp_inside_square = remove # ignore/add/remove/force +# Add or remove space inside empty function '()'. +# Overrides sp_after_angle unless use_sp_after_angle_always is set to true. +sp_inside_fparens = ignore # ignore/add/remove/force/not_defined -# Add or remove space after ',' -sp_after_comma = add # ignore/add/remove/force +# Add or remove space inside function '(' and ')'. +sp_inside_fparen = ignore # ignore/add/remove/force/not_defined -# Add or remove space before ',' -sp_before_comma = remove # ignore/add/remove/force +# Add or remove space inside the first parentheses in a function type, as in +# 'void (*x)(...)'. +sp_inside_tparen = ignore # ignore/add/remove/force/not_defined -# Add or remove space between an open paren and comma: '(,' vs '( ,' -sp_paren_comma = force # ignore/add/remove/force +# Add or remove space between the ')' and '(' in a function type, as in +# 'void (*x)(...)'. +sp_after_tparen_close = ignore # ignore/add/remove/force/not_defined -# Add or remove space before the variadic '...' when preceded by a non-punctuator -sp_before_ellipsis = ignore # ignore/add/remove/force +# Add or remove space between ']' and '(' when part of a function call. +sp_square_fparen = ignore # ignore/add/remove/force/not_defined -# Add or remove space after class ':' -sp_after_class_colon = add # ignore/add/remove/force +# Add or remove space between ')' and '{' of function. +sp_fparen_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove space before class ':' -sp_before_class_colon = add # ignore/add/remove/force +# 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/not_defined -# Add or remove space before case ':'. Default=Remove -sp_before_case_colon = remove # ignore/add/remove/force +# Add or remove space between function name and '(' on function calls. +sp_func_call_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'operator' and operator sign -sp_after_operator = remove # ignore/add/remove/force +# Add or remove space between function name and '()' on function calls without +# parameters. If set to ignore (the default), sp_func_call_paren is used. +sp_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined -# Add or remove space between the operator symbol and the open paren, as in 'operator ++(' -sp_after_operator_sym = remove # ignore/add/remove/force +# Add or remove space between the user function name and '(' on function +# calls. You need to set a keyword to be a user function in the config file, +# like: +# set func_call_user tr _ i18n +sp_func_call_user_paren = ignore # ignore/add/remove/force/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 = remove # ignore/add/remove/force +# Add or remove space inside user function '(' and ')'. +sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force/not_defined -# Add or remove spaces inside cast parens -sp_inside_paren_cast = remove # ignore/add/remove/force +# Add or remove space between nested parentheses with user functions, +# i.e. '((' vs. '( ('. +sp_func_call_user_paren_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space between the type and open paren in a C++ cast, i.e. 'int(exp)' vs 'int (exp)' -sp_cpp_cast_paren = remove # ignore/add/remove/force +# Add or remove space between a constructor/destructor and the open +# parenthesis. +sp_func_class_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'sizeof' and '(' -sp_sizeof_paren = remove # ignore/add/remove/force +# Add or remove space between a constructor without parameters or destructor +# and '()'. +sp_func_class_paren_empty = ignore # ignore/add/remove/force/not_defined -# Add or remove space after the tag keyword (Pawn) -sp_after_tag = ignore # ignore/add/remove/force +# Add or remove space between 'return' and '('. +sp_return_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside enum '{' and '}' -sp_inside_braces_enum = add # ignore/add/remove/force +# Add or remove space between 'return' and '{'. +sp_return_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside struct/union '{' and '}' -sp_inside_braces_struct = add # ignore/add/remove/force +# Add or remove space between '__attribute__' and '('. +sp_attribute_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside '{' and '}' -sp_inside_braces = add # ignore/add/remove/force +# Add or remove space between 'defined' and '(' in '#if defined (FOO)'. +sp_defined_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside '{}' -sp_inside_braces_empty = remove # ignore/add/remove/force +# Add or remove space between 'throw' and '(' in 'throw (something)'. +sp_throw_paren = 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 = add # ignore/add/remove/force +# Add or remove space between 'throw' and anything other than '(' as in +# '@throw [...];'. +sp_after_throw = ignore # ignore/add/remove/force/not_defined -# Add or remove space between function name and '(' on function declaration -sp_func_proto_paren = remove # ignore/add/remove/force +# Add or remove space between 'catch' and '(' in 'catch (something) { }'. +# If set to ignore, sp_before_sparen is used. +sp_catch_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space between function name and '(' on function definition -sp_func_def_paren = remove # ignore/add/remove/force +# Add or remove space between 'super' and '(' in 'super (something)'. +# +# Default: remove +sp_super_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside empty function '()' -sp_inside_fparens = remove # ignore/add/remove/force +# Add or remove space between 'this' and '(' in 'this (something)'. +# +# Default: remove +sp_this_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside function '(' and ')' -sp_inside_fparen = remove # ignore/add/remove/force +# Add or remove space between a macro name and its definition. +sp_macro = ignore # ignore/add/remove/force/not_defined -# Add or remove space inside the first parens in the function type: 'void (*x)(...)' -sp_inside_tparen = ignore # ignore/add/remove/force +# Add or remove space between a macro function ')' and its definition. +sp_macro_func = ignore # ignore/add/remove/force/not_defined -# Add or remove between the parens in the function type: 'void (*x)(...)' -sp_after_tparen_close = ignore # ignore/add/remove/force +# Add or remove space between 'else' and '{' if on the same line. +sp_else_brace = add # ignore/add/remove/force/not_defined -# Add or remove space between ']' and '(' when part of a function call. -sp_square_fparen = remove # ignore/add/remove/force +# Add or remove space between '}' and 'else' if on the same line. +sp_brace_else = add # ignore/add/remove/force/not_defined -# Add or remove space between ')' and '{' of function -sp_fparen_brace = add # ignore/add/remove/force +# Add or remove space between '}' and the name of a typedef on the same line. +sp_brace_typedef = ignore # ignore/add/remove/force/not_defined -# Add or remove space between function name and '(' on function calls -sp_func_call_paren = remove # ignore/add/remove/force +# Add or remove space before the '{' of a 'catch' statement, if the '{' and +# 'catch' are on the same line, as in 'catch (decl) <here> {'. +sp_catch_brace = ignore # ignore/add/remove/force/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 +# Add or remove space between '}' and 'catch' if on the same line. +sp_brace_catch = 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, like this: 'set func_call_user _' in the config file. -sp_func_call_user_paren = remove # ignore/add/remove/force +# Add or remove space between 'finally' and '{' if on the same line. +sp_finally_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove space between a constructor/destructor and the open paren -sp_func_class_paren = remove # ignore/add/remove/force +# Add or remove space between '}' and 'finally' if on the same line. +sp_brace_finally = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'return' and '(' -sp_return_paren = add # ignore/add/remove/force +# Add or remove space between 'try' and '{' if on the same line. +sp_try_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove space between '__attribute__' and '(' -sp_attribute_paren = remove # ignore/add/remove/force +# Add or remove space between get/set and '{' if on the same line. +sp_getset_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'defined' and '(' in '#if defined (FOO)' -sp_defined_paren = remove # ignore/add/remove/force +# Add or remove space between a variable and '{' for C++ uniform +# initialization. +sp_word_brace_init_lst = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'throw' and '(' in 'throw (something)' -sp_throw_paren = remove # ignore/add/remove/force +# Add or remove space between a variable and '{' for a namespace. +# +# Default: add +sp_word_brace_ns = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'throw' and anything other than '(' as in '@throw [...];' -sp_after_throw = ignore # ignore/add/remove/force +# Add or remove space before the '::' operator. +sp_before_dc = 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 +# Add or remove space after the '::' operator. +sp_after_dc = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'version' and '(' in 'version (something) { }' (D language) -# If set to ignore, sp_before_sparen is used. -sp_version_paren = ignore # ignore/add/remove/force +# Add or remove space after the '!' (not) unary operator. +# +# Default: remove +sp_not = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'scope' and '(' in 'scope (something) { }' (D language) -# If set to ignore, sp_before_sparen is used. -sp_scope_paren = ignore # ignore/add/remove/force +# Add or remove space after the '~' (invert) unary operator. +# +# Default: remove +sp_inv = ignore # 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 = ignore # ignore/add/remove/force/not_defined + +# Add or remove space around the '.' or '->' operators. +# +# Default: remove +sp_member = ignore # 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 = ignore # ignore/add/remove/force/not_defined + +# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. +# +# Default: remove +sp_sign = ignore # 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 = ignore # 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 = ignore # ignore/add/remove/force/not_defined + +# Add or remove space around the ':' in 'b ? t : f'. +sp_cond_colon = ignore # 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/not_defined -# Add or remove space between macro and value -sp_macro = add # ignore/add/remove/force +# Add or remove space after the ':' in 'b ? t : f'. +# +# Overrides sp_cond_colon. +sp_cond_colon_after = ignore # ignore/add/remove/force/not_defined -# Add or remove space between macro function ')' and value -sp_macro_func = remove # ignore/add/remove/force +# Add or remove space around the '?' in 'b ? t : f'. +sp_cond_question = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'else' and '{' if on the same line -sp_else_brace = add # ignore/add/remove/force +# Add or remove space before the '?' in 'b ? t : f'. +# +# Overrides sp_cond_question. +sp_cond_question_before = ignore # ignore/add/remove/force/not_defined -# Add or remove space between '}' and 'else' if on the same line -sp_brace_else = add # ignore/add/remove/force +# Add or remove space after the '?' in 'b ? t : f'. +# +# Overrides sp_cond_question. +sp_cond_question_after = ignore # ignore/add/remove/force/not_defined -# Add or remove space between '}' and the name of a typedef on the same line -sp_brace_typedef = add # ignore/add/remove/force +# In the abbreviated ternary form '(a ?: b)', add or remove space between '?' +# and ':'. +# +# Overrides all other sp_cond_* options. +sp_cond_ternary_short = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'catch' and '{' if on the same line -sp_catch_brace = add # ignore/add/remove/force +# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make +# sense here. +sp_case_label = ignore # ignore/add/remove/force/not_defined -# Add or remove space between '}' and 'catch' if on the same line -sp_brace_catch = add # ignore/add/remove/force +# Add or remove space after ':' in a Java/C++11 range-based 'for', +# as in 'for (Type var : <here> expr)'. +sp_after_for_colon = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'finally' and '{' if on the same line -sp_finally_brace = add # ignore/add/remove/force +# Add or remove space before ':' in a Java/C++11 range-based 'for', +# as in 'for (Type var <here> : expr)'. +sp_before_for_colon = ignore # ignore/add/remove/force/not_defined -# Add or remove space between '}' and 'finally' if on the same line -sp_brace_finally = add # ignore/add/remove/force +# Add or remove space after the opening of a C++ comment, as in '// <here> A'. +sp_cmt_cpp_start = ignore # ignore/add/remove/force/not_defined -# Add or remove space between 'try' and '{' if on the same line -sp_try_brace = add # ignore/add/remove/force +# Add or remove space in a C++ region marker comment, as in '// <here> 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 -# Add or remove space between get/set and '{' if on the same line -sp_getset_brace = add # ignore/add/remove/force +# If true, space added with sp_cmt_cpp_start will be added after Doxygen +# sequences like '///', '///<', '//!' and '//!<'. +sp_cmt_cpp_doxygen = false # true/false -# Add or remove space before the '::' operator -sp_before_dc = remove # ignore/add/remove/force +# 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 after the '::' operator -sp_after_dc = remove # ignore/add/remove/force +# Add or remove space between #else or #endif and a trailing comment. +sp_endif_cmt = ignore # ignore/add/remove/force/not_defined -# Add or remove around the D named array initializer ':' operator -sp_d_array_colon = ignore # ignore/add/remove/force +# Add or remove space after 'new', 'delete' and 'delete[]'. +sp_after_new = ignore # ignore/add/remove/force/not_defined -# Add or remove space after the '!' (not) operator. Default=Remove -sp_not = remove # ignore/add/remove/force +# Add or remove space between 'new' and '(' in 'new()'. +sp_between_new_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space after the '~' (invert) operator. Default=Remove -sp_inv = remove # ignore/add/remove/force +# Add or remove space between ')' and type in 'new(foo) BAR'. +sp_after_newop_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space after the '&' (address-of) operator. Default=Remove -# This does not affect the spacing after a '&' that is part of a type. -sp_addr = remove # ignore/add/remove/force +# Add or remove space inside parenthesis of the new operator +# as in 'new(foo) BAR'. +sp_inside_newop_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove space around the '.' or '->' operators. Default=Remove -sp_member = remove # ignore/add/remove/force +# Add or remove space after the open parenthesis of the new operator, +# as in 'new(foo) BAR'. +# +# Overrides sp_inside_newop_paren. +sp_inside_newop_paren_open = ignore # ignore/add/remove/force/not_defined -# Add or remove space after the '*' (dereference) operator. Default=Remove -# This does not affect the spacing after a '*' that is part of a type. -sp_deref = remove # ignore/add/remove/force +# Add or remove space before the close parenthesis of the new operator, +# as in 'new(foo) BAR'. +# +# Overrides sp_inside_newop_paren. +sp_inside_newop_paren_close = ignore # ignore/add/remove/force/not_defined -# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. Default=Remove -sp_sign = remove # ignore/add/remove/force +# Add or remove space before a trailing or embedded comment. +sp_before_tr_emb_cmt = add # ignore/add/remove/force/not_defined -# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'. Default=Remove -sp_incdec = remove # ignore/add/remove/force +# Number of spaces before a trailing or embedded comment. +sp_num_before_tr_emb_cmt = 2 # unsigned number -# Add or remove space before a backslash-newline at the end of a line. Default=Add -sp_before_nl_cont = remove # ignore/add/remove/force +# If true, vbrace tokens are dropped to the previous token and skipped. +sp_skip_vbrace_tokens = false # true/false -# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;' -sp_after_oc_scope = remove # ignore/add/remove/force +# Add or remove space after 'noexcept'. +sp_after_noexcept = ignore # ignore/add/remove/force/not_defined -# Add or remove space after the colon in message specs -# '-(int) f:(int) x;' vs '-(int) f: (int) x;' -sp_after_oc_colon = remove # ignore/add/remove/force +# Add or remove space after '_'. +sp_vala_after_translation = ignore # ignore/add/remove/force/not_defined -# Add or remove space before the colon in message specs -# '-(int) f: (int) x;' vs '-(int) f : (int) x;' -sp_before_oc_colon = remove # ignore/add/remove/force +# If true, a <TAB> is inserted after #define. +force_tab_after_define = false # true/false -# 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 +# +# Indenting options +# + +# The number of columns to indent per level. Usually 2, 3, 4, or 8. +# +# Default: 8 +indent_columns = 2 # unsigned number -# 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 +# 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 = 0 # number -# Add or remove space after the colon in message specs -# '[object setValue:1];' vs '[object setValue: 1];' -sp_after_send_oc_colon = add # ignore/add/remove/force +# The continuation indent, only for class header line(s). If non-zero, this +# overrides the indent of 'class' continuation indents. +indent_continue_class_head = 0 # unsigned number -# Add or remove space before the colon in message specs -# '[object setValue:1];' vs '[object setValue :1];' -sp_before_send_oc_colon = remove # ignore/add/remove/force +# Whether to indent empty lines (i.e. lines which contain only spaces before +# the newline character). +indent_single_newlines = false # true/false -# Add or remove space after the (type) in message specs -# '-(int)f: (int) x;' vs '-(int)f: (int)x;' -sp_after_oc_type = remove # ignore/add/remove/force +# The continuation indent for func_*_param if they are true. If non-zero, this +# overrides the indent. +indent_param = 0 # unsigned number -# Add or remove space after the first (type) in message specs -# '-(int) f:(int)x;' vs '-(int)f:(int)x;' -sp_after_oc_return_type = ignore # ignore/add/remove/force +# How to use tabs when indenting code. +# +# 0: Spaces only +# 1: Indent with tabs to brace level, align with spaces (default) +# 2: Indent and align with tabs, using spaces when not on a tabstop +# +# Default: 1 +indent_with_tabs = 0 # unsigned number -# Add or remove space between '@selector' and '(' -# '@selector(msgName)' vs '@selector (msgName)' -# Also applies to @protocol() constructs -sp_after_oc_at_sel = ignore # ignore/add/remove/force +# Whether to indent comments that are not at a brace level with tabs on a +# tabstop. Requires indent_with_tabs=2. If false, will use spaces. +indent_cmt_with_tabs = false # true/false -# Add or remove space between '@selector(x)' and the following word -# '@selector(foo) a:' vs '@selector(foo)a:' -sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force +# Whether to indent strings broken by '\' so that they line up. +indent_align_string = false # true/false -# Add or remove space inside '@selector' parens -# '@selector(foo)' vs '@selector( foo )' -# Also applies to @protocol() constructs -sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force +# The number of spaces to indent multi-line XML strings. +# Requires indent_align_string=true. +indent_xml_string = 0 # unsigned number -# Add or remove space before a block pointer caret -# '^int (int arg){...}' vs. ' ^int (int arg){...}' -sp_before_oc_block_caret = ignore # ignore/add/remove/force +# Spaces to indent '{' from level. +indent_brace = 0 # unsigned number -# Add or remove space after a block pointer caret -# '^int (int arg){...}' vs. '^ int (int arg){...}' -sp_after_oc_block_caret = ignore # ignore/add/remove/force +# Whether braces are indented to the body level. +indent_braces = false # true/false -# Add or remove space between the receiver and selector in a message. -# '[receiver selector ...]' -sp_after_oc_msg_receiver = ignore # ignore/add/remove/force +# Whether to disable indenting function braces if indent_braces=true. +indent_braces_no_func = false # true/false -# Add or remove space after @property. -sp_after_oc_property = ignore # ignore/add/remove/force +# Whether to disable indenting class braces if indent_braces=true. +indent_braces_no_class = false # true/false -# Add or remove space around the ':' in 'b ? t : f' -sp_cond_colon = add # ignore/add/remove/force +# Whether to disable indenting struct braces if indent_braces=true. +indent_braces_no_struct = false # true/false -# Add or remove space around the '?' in 'b ? t : f' -sp_cond_question = add # ignore/add/remove/force +# Whether to indent based on the size of the brace parent, +# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc. +indent_brace_parent = false # true/false -# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here. -sp_case_label = ignore # ignore/add/remove/force +# Whether to indent based on the open parenthesis instead of the open brace +# in '({\n'. +indent_paren_open_brace = false # true/false -# Control the space around the D '..' operator. -sp_range = ignore # ignore/add/remove/force +# Whether to indent the body of a 'namespace'. +indent_namespace = false # true/false -# Control the spacing after ':' in 'for (TYPE VAR : EXPR)' (Java) -sp_after_for_colon = ignore # ignore/add/remove/force +# Whether to indent only the first namespace, and not any nested namespaces. +# Requires indent_namespace=true. +indent_namespace_single_indent = false # true/false -# Control the spacing before ':' in 'for (TYPE VAR : EXPR)' (Java) -sp_before_for_colon = ignore # ignore/add/remove/force +# The number of spaces to indent a namespace block. +# If set to zero, use the value indent_columns +indent_namespace_level = 0 # unsigned number -# Control the spacing in 'extern (C)' (D) -sp_extern_paren = ignore # ignore/add/remove/force +# If the body of the namespace is longer than this number, it won't be +# indented. Requires indent_namespace=true. 0 means no limit. +indent_namespace_limit = 0 # unsigned number -# Control the space after the opening of a C++ comment '// A' vs '//A' -sp_cmt_cpp_start = add # ignore/add/remove/force +# Whether the 'extern "C"' body is indented. +indent_extern = false # true/false -# Controls the spaces between #else or #endif and a trailing comment -sp_endif_cmt = ignore # ignore/add/remove/force +# Whether the 'class' body is indented. +indent_class = false # true/false -# Controls the spaces after 'new', 'delete', and 'delete[]' -sp_after_new = ignore # ignore/add/remove/force +# 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 -# Controls the spaces before a trailing or embedded comment -sp_before_tr_emb_cmt = ignore # ignore/add/remove/force +# Whether to indent the stuff after a leading base class colon. +indent_class_colon = false # true/false -# Number of spaces before a trailing or embedded comment -sp_num_before_tr_emb_cmt = 0 # number +# Whether to indent based on a class colon instead of the stuff after the +# colon. Requires indent_class_colon=true. +indent_class_on_colon = false # true/false -# Control space between a Java annotation and the open paren. -sp_annotation_paren = ignore # ignore/add/remove/force +# Whether to indent the stuff after a leading class initializer colon. +indent_constr_colon = false # true/false +# Virtual indent from the ':' for member initializers. # -# Code alignment (not left column spaces/tabs) +# Default: 2 +indent_ctor_init_leading = 2 # unsigned number + +# Additional indent for constructor initializer list. +# Negative values decrease indent down to the first column. +indent_ctor_init = 0 # number + +# Whether to indent 'if' following 'else' as a new block under the 'else'. +# If false, 'else\nif' is treated as 'else if' for indenting purposes. +indent_else_if = false # true/false + +# Amount to indent variable declarations after a open brace. # +# <0: Relative +# >=0: Absolute +indent_var_def_blk = 0 # number -# Whether to keep non-indenting tabs -align_keep_tabs = false # false/true +# Whether to indent continued variable declarations instead of aligning. +indent_var_def_cont = false # true/false -# Whether to use tabs for aligning -align_with_tabs = false # false/true +# Whether to indent continued shift expressions ('<<' and '>>') instead of +# aligning. Set align_left_shift=false when enabling this. +indent_shift = false # true/false -# Whether to bump out to the next tab when aligning -align_on_tabstop = false # false/true +# Whether to force indentation of function definitions to start in column 1. +indent_func_def_force_col1 = false # true/false -# Whether to left-align numbers -align_number_left = false # false/true +# Whether to indent continued function call parameters one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_call_param = false # true/false -# Align variable definitions in prototypes and functions -align_func_params = true # false/true +# Whether to indent continued function definition parameters one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_def_param = false # true/false -# 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 = true # false/true +# 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 -# The span for aligning variable definitions (0=don't align) -align_var_def_span = 0 # number +# Whether to indent continued function call prototype one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_proto_param = false # true/false -# How to align the star in variable definitions. -# 0=Part of the type 'void * foo;' -# 1=Part of the variable 'void *foo;' -# 2=Dangling 'void *foo;' -align_var_def_star_style = 1 # number +# Whether to indent continued function call declaration one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_class_param = false # true/false -# How to align the '&' in variable definitions. -# 0=Part of the type -# 1=Part of the variable -# 2=Dangling -align_var_def_amp_style = 2 # number +# Whether to indent continued class variable constructors one indent level, +# rather than aligning parameters under the open parenthesis. +indent_func_ctor_var_param = false # true/false -# The threshold for aligning variable definitions (0=no limit) -align_var_def_thresh = 3 # number +# Whether to indent continued template parameter list one indent level, +# rather than aligning parameters under the open parenthesis. +indent_template_param = false # true/false -# The gap for aligning variable definitions -align_var_def_gap = 1 # number +# Double the indent for indent_func_xxx_param options. +# Use both values of the options indent_columns and indent_param. +indent_func_param_double = false # true/false -# Whether to align the colon in struct bit fields -align_var_def_colon = true # false/true +# Indentation column for standalone 'const' qualifier on a function +# prototype. +indent_func_const = 0 # unsigned number -# Whether to align any attribute after the variable name -align_var_def_attribute = true # false/true +# Indentation column for standalone 'throw' qualifier on a function +# prototype. +indent_func_throw = 0 # unsigned number -# Whether to align inline struct/enum/union variable definitions -align_var_def_inline = true # false/true +# How to indent within a macro followed by a brace on the same line +# This allows reducing the indent in macros that have (for example) +# `do { ... } while (0)` blocks bracketing them. +# +# true: add an indent for the brace on the same line as the macro +# false: do not add an indent for the brace on the same line as the macro +# +# Default: true +indent_macro_brace = false # true/false -# The span for aligning on '=' in assignments (0=don't align) -align_assign_span = 0 # number +# The number of spaces to indent a continued '->' or '.'. +# Usually set to 0, 1, or indent_columns. +indent_member = 0 # unsigned number -# The threshold for aligning on '=' in assignments (0=no limit) -align_assign_thresh = 0 # number +# Whether lines broken at '.' or '->' should be indented by a single indent. +# The indent_member option will not be effective if this is set to true. +indent_member_single = false # true/false -# The span for aligning on '=' in enums (0=don't align) -align_enum_equ_span = 0 # number +# Spaces to indent single line ('//') comments on lines before code. +indent_sing_line_comments = 0 # unsigned number -# The threshold for aligning on '=' in enums (0=no limit) -align_enum_equ_thresh = 0 # 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 -# The span for aligning struct/union (0=don't align) -align_var_struct_span = 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 = true # true/false -# The threshold for aligning struct/union member definitions (0=no limit) -align_var_struct_thresh = 0 # number +# Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns. +# It might wise to choose the same value for the option indent_case_brace. +indent_switch_case = 0 # unsigned number -# The gap for aligning struct/union member definitions -align_var_struct_gap = 0 # number +# Spaces to indent '{' from 'case'. By default, the brace will appear under +# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK. +# It might wise to choose the same value for the option indent_switch_case. +indent_case_brace = 2 # number -# The span for aligning struct initializer values (0=don't align) -align_struct_init_span = 0 # number +# indent 'break' with 'case' from 'switch'. +indent_switch_break_with_case = false # true/false -# The minimum space between the type and the synonym of a typedef -align_typedef_gap = 0 # number +# Whether to indent preprocessor statements inside of switch statements. +# +# Default: true +indent_switch_pp = true # true/false -# The span for aligning single-line typedefs (0=don't align) -align_typedef_span = 0 # number +# Spaces to shift the 'case' line, without affecting any other lines. +# Usually 0. +indent_case_shift = 0 # unsigned number -# How to align typedef'd functions with other typedefs -# 0: Don't mix them at all -# 1: align the open paren with the types -# 2: align the function type name with the other type names -align_typedef_func = 0 # number +# Whether to indent comments found in first column. +indent_col1_comment = false # true/false -# Controls the positioning of the '*' in typedefs. Just try it. -# 0: Align on typedef type, ignore '*' -# 1: The '*' is part of type name: typedef int *pint; -# 2: The '*' is part of the type, but dangling: typedef int *pint; -align_typedef_star_style = 2 # number +# Whether to indent multi string literal in first column. +indent_col1_multi_string_literal = false # true/false -# Controls the positioning of the '&' in typedefs. Just try it. -# 0: Align on typedef type, ignore '&' -# 1: The '&' is part of type name: typedef int &pint; -# 2: The '&' is part of the type, but dangling: typedef int &pint; -align_typedef_amp_style = 2 # number +# How to indent goto labels. +# +# >0: Absolute column where 1 is the leftmost column +# <=0: Subtract from brace indent +# +# Default: 1 +indent_label = 1 # number -# The span for aligning comments that end lines (0=don't align) -align_right_cmt_span = 4 # number +# How to indent access specifiers that are followed by a +# colon. +# +# >0: Absolute column where 1 is the leftmost column +# <=0: Subtract from brace indent +# +# Default: 1 +indent_access_spec = 1 # number -# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment -align_right_cmt_mix = false # false/true +# Whether to indent the code after an access specifier by one level. +# If true, this option forces 'indent_access_spec=0'. +indent_access_spec_body = false # true/false -# If a trailing comment is more than this number of columns away from the text it follows, -# it will qualify for being aligned. This has to be > 0 to do anything. -align_right_cmt_gap = 0 # number +# If an open parenthesis is followed by a newline, whether to indent the next +# line so that it lines up after the open parenthesis (not recommended). +indent_paren_nl = false # true/false -# Align trailing comment at or beyond column N; 'pulls in' comments as a bonus side effect (0=ignore) -align_right_cmt_at_col = 1 # number +# How to indent a close parenthesis after a newline. +# +# 0: Indent to body level (default) +# 1: Align under the open parenthesis +# 2: Indent to the brace level +indent_paren_close = 0 # unsigned number -# The span for aligning function prototypes (0=don't align) -align_func_proto_span = 0 # number +# Whether to indent the open parenthesis of a function definition, +# if the parenthesis is on its own line. +indent_paren_after_func_def = false # true/false -# Minimum gap between the return type and the function name. -align_func_proto_gap = 0 # number +# Whether to indent the open parenthesis of a function declaration, +# if the parenthesis is on its own line. +indent_paren_after_func_decl = false # true/false -# Align function protos on the 'operator' keyword instead of what follows -align_on_operator = true # false/true +# Whether to indent the open parenthesis of a function call, +# if the parenthesis is on its own line. +indent_paren_after_func_call = true # true/false -# Whether to mix aligning prototype and variable declarations. -# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options. -align_mix_var_proto = false # false/true +# Whether to indent a comma when inside a brace. +# If true, aligns under the open brace. +indent_comma_brace = false # true/false -# Align single-line functions with function prototypes, uses align_func_proto_span -align_single_line_func = true # false/true +# Whether to indent a comma when inside a parenthesis. +# If true, aligns under the open parenthesis. +indent_comma_paren = false # true/false -# Aligning the open brace of single-line functions. -# Requires align_single_line_func=true, uses align_func_proto_span -align_single_line_brace = true # false/true +# Whether to indent a Boolean operator when inside a parenthesis. +# If true, aligns under the open parenthesis. +indent_bool_paren = false # true/false -# Gap for align_single_line_brace. -align_single_line_brace_gap = 0 # number +# Whether to indent a semicolon when inside a for parenthesis. +# If true, aligns under the open for parenthesis. +indent_semicolon_for_paren = false # true/false + +# Whether to align the first expression to following ones +# if indent_bool_paren=true. +indent_first_bool_expr = false # true/false + +# Whether to align the first expression to following ones +# if indent_semicolon_for_paren=true. +indent_first_for_expr = false # true/false + +# If an open square is followed by a newline, whether to indent the next line +# so that it lines up after the open square (not recommended). +indent_square_nl = false # true/false + +# (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies. +indent_preserve_sql = false # true/false + +# Whether to align continued statements at the '='. If false or if the '=' is +# followed by a newline, the next line is indent one tab. +# +# Default: true +indent_align_assign = true # true/false + +# If true, the indentation of the chunks after a '=' sequence will be set at +# LHS token indentation column before '='. +indent_off_after_assign = false # true/false + +# Whether to align continued statements at the '('. If false or the '(' is +# followed by a newline, the next line indent is one tab. +# +# Default: true +indent_align_paren = true # true/false + +# When indenting after virtual brace open and newline add further spaces to +# reach this minimum indent. +indent_min_vbrace_open = 0 # unsigned number -# The span for aligning ObjC msg spec (0=don't align) -align_oc_msg_spec_span = 0 # number +# Whether to add further spaces after regular indent to reach next tabstop +# 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). +# true: indent all contained lines to match the token +# false: indent all contained lines to match the brace +# +# Default: true +indent_token_after_brace = true # true/false -# 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 = true # false/true +# Whether to indent the body of a C++11 lambda. +indent_cpp_lambda_body = false # true/false -# # Align macro functions and variables together -align_pp_define_together = false # false/true +# 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 = false # true/false + +# How to indent the continuation of ternary operator. +# +# 0: Off (default) +# 1: When the `if_false` is a continuation, indent it under `if_false` +# 2: When the `:` is a continuation, indent it under `?` +indent_ternary_operator = 2 # unsigned number -# The minimum space between label and value of a preprocessor define -align_pp_define_gap = 0 # number +# Whether to indent the statements inside ternary operator. +indent_inside_ternary_operator = false # true/false -# The span for aligning on '#define' bodies (0=don't align) -align_pp_define_span = 0 # number +# 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 -# Align lines that start with '<<' with previous '<<'. Default=true -align_left_shift = true # false/true +# 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 -# Span for aligning parameters in an Obj-C message call on the ':' (0=don't align) -align_oc_msg_colon_span = 0 # number +# If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token. +indent_single_after_return = false # true/false -# If true, always align with the first parameter, even if it is too short. -align_oc_msg_colon_first = false # false/true +# Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they +# have their own indentation). +indent_ignore_asm_block = false # true/false -# Aligning parameters in an Obj-C '+' or '-' declaration on the ':' -align_oc_decl_colon = false # false/true +# 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 '}' -nl_collapse_empty_body = true # false/true +# 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 - 'foo_t f = { 1, 2 };' -nl_assign_leave_one_liners = false # false/true +# Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'. +nl_assign_leave_one_liners = false # true/false -# Don't split one-line braced statements inside a class xx { } body -nl_class_leave_one_liners = false # false/true +# Don't split one-line braced statements inside a 'class xx { }' body. +nl_class_leave_one_liners = false # true/false -# Don't split one-line enums: 'enum foo { BAR = 15 };' -nl_enum_leave_one_liners = false # false/true +# Don't split one-line enums, as in 'enum foo { BAR = 15 };' +nl_enum_leave_one_liners = false # true/false -# Don't split one-line get or set functions -nl_getset_leave_one_liners = false # false/true +# Don't split one-line get or set functions. +nl_getset_leave_one_liners = false # true/false -# Don't split one-line function definitions - 'int foo() { return 0; }' -nl_func_leave_one_liners = false # false/true +# Don't split one-line function definitions, as in 'int foo() { return 0; }'. +# might modify nl_func_type_name +nl_func_leave_one_liners = false # true/false -# Don't split one-line if/else statements - 'if(a) b++;' -nl_if_leave_one_liners = true # false/true +# Don't split one-line C++11 lambdas, as in '[]() { return 0; }'. +nl_cpp_lambda_leave_one_liners = false # true/false -# Don't split one-line OC messages -nl_oc_msg_leave_one_liner = false # false/true +# Don't split one-line if/else statements, as in 'if(...) b++;'. +nl_if_leave_one_liners = false # true/false -# Add or remove newlines at the start of the file -nl_start_of_file = ignore # ignore/add/remove/force +# Don't split one-line while statements, as in 'while(...) b++;'. +nl_while_leave_one_liners = false # true/false -# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force' -nl_start_of_file_min = 0 # number +# Don't split one-line do statements, as in 'do { b++; } while(...);'. +nl_do_leave_one_liners = false # true/false -# Add or remove newline at the end of the file -nl_end_of_file = add # ignore/add/remove/force +# Don't split one-line for statements, as in 'for(...) b++;'. +nl_for_leave_one_liners = false # true/false -# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force') -nl_end_of_file_min = 1 # number +# Add or remove newlines at the start of the file. +nl_start_of_file = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between '=' and '{' -nl_assign_brace = ignore # ignore/add/remove/force +# The minimum number of newlines at the start of the file (only used if +# nl_start_of_file is 'add' or 'force'). +nl_start_of_file_min = 0 # unsigned number -# Add or remove newline between '=' and '[' (D only) -nl_assign_square = ignore # ignore/add/remove/force +# Add or remove newline at the end of the file. +nl_end_of_file = ignore # ignore/add/remove/force/not_defined -# Add or remove newline after '= [' (D only). Will also affect the newline before the ']' -nl_after_square_assign = ignore # ignore/add/remove/force +# The minimum number of newlines at the end of the file (only used if +# nl_end_of_file is 'add' or 'force'). +nl_end_of_file_min = 0 # unsigned number -# 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 = 1 # number +# Add or remove newline between '=' and '{'. +nl_assign_brace = ignore # ignore/add/remove/force/not_defined -# The number of newlines before a block of typedefs -# 0 = No change (default) -nl_typedef_blk_start = 0 # number +# Add or remove newline between '[]' and '{'. +nl_tsquare_brace = ignore # ignore/add/remove/force/not_defined -# The number of newlines after a block of typedefs -# 0 = No change (default) -nl_typedef_blk_end = 0 # number +# 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/not_defined -# The maximum consecutive newlines within a block of typedefs -# 0 = No change (default) -nl_typedef_blk_in = 0 # number +# Add or remove newline between 'enum' and '{'. +nl_enum_brace = ignore # ignore/add/remove/force/not_defined -# The number of newlines before a block of variable definitions not at the top of a function body -# 0 = No change (default) -nl_var_def_blk_start = 0 # number +# Add or remove newline between 'enum' and 'class'. +nl_enum_class = ignore # ignore/add/remove/force/not_defined -# The number of newlines after a block of variable definitions not at the top of a function body -# 0 = No change (default) -nl_var_def_blk_end = 0 # number +# Add or remove newline between 'enum class' and the identifier. +nl_enum_class_identifier = ignore # ignore/add/remove/force/not_defined -# The maximum consecutive newlines within a block of variable definitions -# 0 = No change (default) -nl_var_def_blk_in = 0 # number +# Add or remove newline between 'enum class' type and ':'. +nl_enum_identifier_colon = 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 +# Add or remove newline between 'enum class identifier :' and type. +nl_enum_colon_type = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'enum' and '{' -nl_enum_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'struct and '{'. +nl_struct_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'struct and '{' -nl_struct_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'union' and '{'. +nl_union_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'union' and '{' -nl_union_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'if' and '{'. +nl_if_brace = remove # ignore/add/remove/force/not_defined -# Add or remove newline between 'if' and '{' -nl_if_brace = ignore # ignore/add/remove/force +# Add or remove newline between '}' and 'else'. +nl_brace_else = remove # ignore/add/remove/force/not_defined -# Add or remove newline between '}' and 'else' -nl_brace_else = remove # ignore/add/remove/force +# Add or remove newline between 'else if' and '{'. If set to ignore, +# nl_if_brace is used instead. +nl_elseif_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'else if' and '{' -# If set to ignore, nl_if_brace is used instead -nl_elseif_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'else' and '{'. +nl_else_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'else' and '{' -nl_else_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'else' and 'if'. +nl_else_if = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'else' and 'if' -nl_else_if = ignore # ignore/add/remove/force +# Add or remove newline before '{' opening brace +nl_before_opening_brace_func_class_def = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between '}' and 'finally' -nl_brace_finally = ignore # ignore/add/remove/force +# Add or remove newline before 'if'/'else if' closing parenthesis. +nl_before_if_closing_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'finally' and '{' -nl_finally_brace = ignore # ignore/add/remove/force +# Add or remove newline between '}' and 'finally'. +nl_brace_finally = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'try' and '{' -nl_try_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'finally' and '{'. +nl_finally_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between get/set and '{' -nl_getset_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'try' and '{'. +nl_try_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'for' and '{' -nl_for_brace = ignore # ignore/add/remove/force +# Add or remove newline between get/set and '{'. +nl_getset_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'catch' and '{' -nl_catch_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'for' and '{'. +nl_for_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between '}' and 'catch' -nl_brace_catch = ignore # ignore/add/remove/force +# Add or remove newline before the '{' of a 'catch' statement, as in +# 'catch (decl) <here> {'. +nl_catch_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'while' and '{' -nl_while_brace = ignore # ignore/add/remove/force +# Add or remove newline between '}' and 'catch'. +nl_brace_catch = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'scope (x)' and '{' (D) -nl_scope_brace = ignore # ignore/add/remove/force +# Add or remove newline between '}' and ']'. +nl_brace_square = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'unittest' and '{' (D) -nl_unittest_brace = ignore # ignore/add/remove/force +# Add or remove newline between '}' and ')' in a function invocation. +nl_brace_fparen = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'version (x)' and '{' (D) -nl_version_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'while' and '{'. +nl_while_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'using' and '{' -nl_using_brace = ignore # ignore/add/remove/force +# Add or remove newline between two open or close braces. Due to general +# newline/brace handling, REMOVE may not work. +nl_brace_brace = ignore # ignore/add/remove/force/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 +# Add or remove newline between 'do' and '{'. +nl_do_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'do' and '{' -nl_do_brace = ignore # ignore/add/remove/force +# Add or remove newline between '}' and 'while' of 'do' statement. +nl_brace_while = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between '}' and 'while' of 'do' statement -nl_brace_while = ignore # ignore/add/remove/force +# Add or remove newline between 'switch' and '{'. +nl_switch_brace = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'switch' and '{' -nl_switch_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'synchronized' and '{'. +nl_synchronized_brace = ignore # ignore/add/remove/force/not_defined -# Add a newline between ')' and '{' if the ')' is on a different line than the if/for/etc. -# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch, and nl_catch_brace. -nl_multi_line_cond = false # false/true +# Add a newline between ')' and '{' if the ')' is on a different line than the +# if/for/etc. +# +# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and +# nl_catch_brace. +nl_multi_line_cond = false # true/false + +# Add a newline after '(' if an if/for/while/switch condition spans multiple +# lines +nl_multi_line_sparen_open = ignore # ignore/add/remove/force/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 = remove # 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 # false/true +nl_multi_line_define = false # true/false + +# Whether to add a newline before 'case', and a blank line before a 'case' +# statement that follows a ';' or '}'. +nl_before_case = false # true/false + +# Whether to add a newline after a 'case' statement. +nl_after_case = false # true/false + +# Add or remove newline between a case ':' and '{'. +# +# Overrides nl_after_case. +nl_case_colon_brace = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline between ')' and 'throw'. +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/not_defined + +# 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 -# Whether to put a newline before 'case' statement -nl_before_case = true # false/true +# 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 between ')' and 'throw' -nl_before_throw = ignore # ignore/add/remove/force +# Add or remove newline after 'template<...>' of a template variable. +nl_template_var = ignore # ignore/add/remove/force/not_defined -# Whether to put a newline after 'case' statement -nl_after_case = true # false/true +# 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 a newline between a case ':' and '{'. Overrides nl_after_case. -nl_case_colon_brace = ignore # ignore/add/remove/force +# Add or remove newline between 'class' and '{'. +nl_class_brace = ignore # ignore/add/remove/force/not_defined -# Newline between namespace and { -nl_namespace_brace = remove # 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 between 'template<>' and whatever follows. -nl_template_class = ignore # ignore/add/remove/force +# Add or remove newline after each ',' in the constructor member +# initialization. Related to nl_constr_colon, pos_constr_colon and +# pos_constr_comma. +nl_constr_init_args = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between 'class' and '{' -nl_class_brace = remove # ignore/add/remove/force +# Add or remove newline before first element, after comma, and after last +# element, in 'enum'. +nl_enum_own_lines = ignore # ignore/add/remove/force/not_defined -# Add or remove newline after each ',' in the constructor member initialization -nl_class_init_args = add # ignore/add/remove/force +# Add or remove newline between return type and function name in a function +# definition. +# might be modified by nl_func_leave_one_liners +nl_func_type_name = remove # 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 +# 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/not_defined -# Add or remove newline between return type and function name inside a class {} -# Uses nl_func_type_name or nl_func_proto_type_name if set to ignore. -nl_func_type_name_class = ignore # ignore/add/remove/force +# Add or remove newline between class specification and '::' +# in 'void A::f() { }'. Only appears in separate member implementation (does +# not appear with in-line implementation). +nl_func_class_scope = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between function scope and name in a definition -# Controls the newline after '::' in 'void A::f() { }' -nl_func_scope_name = ignore # ignore/add/remove/force +# Add or remove newline between function scope and name, as in +# 'void A :: <here> f() { }'. +nl_func_scope_name = ignore # ignore/add/remove/force/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 +# Add or remove newline between return type and function name in a prototype. +nl_func_proto_type_name = ignore # ignore/add/remove/force/not_defined -# Add or remove newline between a function name and the opening '(' -nl_func_paren = ignore # ignore/add/remove/force +# Add or remove newline between a function name and the opening '(' in the +# declaration. +nl_func_paren = ignore # ignore/add/remove/force/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 +# Overrides nl_func_paren for functions with no parameters. +nl_func_paren_empty = ignore # ignore/add/remove/force/not_defined -# Add or remove newline after '(' in a function declaration -nl_func_decl_start = ignore # ignore/add/remove/force +# Add or remove newline between a function name and the opening '(' in the +# definition. +nl_func_def_paren = ignore # ignore/add/remove/force/not_defined -# Add or remove newline after '(' in a function definition -nl_func_def_start = ignore # ignore/add/remove/force +# Overrides nl_func_def_paren for functions with no parameters. +nl_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline between a function name and the opening '(' in the +# call. +nl_func_call_paren = ignore # ignore/add/remove/force/not_defined + +# Overrides nl_func_call_paren for functions with no parameters. +nl_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after '(' in a function declaration. +nl_func_decl_start = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline after '(' in a function definition. +nl_func_def_start = remove # 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. +nl_func_decl_start_multi_line = false # true/false + +# Whether to add a newline after '(' in a function definition if '(' and ')' +# are in different lines. If false, nl_func_def_start is used instead. +nl_func_def_start_multi_line = false # true/false -# Add or remove newline after each ',' in a function declaration -nl_func_decl_args = add # ignore/add/remove/force +# Add or remove newline after each ',' in a function declaration. +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 +# Add or remove newline after each ',' in a function definition. +nl_func_def_args = remove # ignore/add/remove/force/not_defined -# Add or remove newline before the ')' in a function declaration -nl_func_decl_end = ignore # ignore/add/remove/force +# Add or remove newline after each ',' in a function call. +nl_func_call_args = 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 +# Whether to add a newline after each ',' in a function declaration if '(' +# and ')' are in different lines. If false, nl_func_decl_args is used instead. +nl_func_decl_args_multi_line = false # true/false + +# Whether to add a newline after each ',' in a function definition if '(' +# and ')' are in different lines. If false, nl_func_def_args is used instead. +nl_func_def_args_multi_line = false # true/false + +# Add or remove newline before the ')' in a function declaration. +nl_func_decl_end = ignore # ignore/add/remove/force/not_defined + +# Add or remove newline before the ')' in a function definition. +nl_func_def_end = remove # 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. +nl_func_decl_end_multi_line = false # true/false + +# Whether to add a newline before ')' in a function definition if '(' and ')' +# are in different lines. If false, nl_func_def_end is used instead. +nl_func_def_end_multi_line = false # true/false # Add or remove newline between '()' in a function declaration. -nl_func_decl_empty = ignore # ignore/add/remove/force +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 = ignore # 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 = remove # 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. +nl_func_call_start_multi_line = false # true/false + +# Whether to add a newline after each ',' in a function call if '(' and ')' +# are in different lines. +nl_func_call_args_multi_line = false # true/false + +# Whether to add a newline before ')' in a function call if '(' and ')' are in +# different lines. +nl_func_call_end_multi_line = false # true/false + +# Whether to respect nl_func_call_XXX option 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 put each OC message parameter on a separate line -# See nl_oc_msg_leave_one_liner -nl_oc_msg_args = false # false/true +# Whether to add a newline after each ',' in a template parameter list. +nl_template_args = false # true/false -# Add or remove newline between function signature and '{' -nl_fdef_brace = ignore # ignore/add/remove/force +# Whether to add a newline before '>' of a template parameter list. +nl_template_end = false # true/false -# Add or remove a newline between the return keyword and return expression. -nl_return_expr = ignore # ignore/add/remove/force +# Add or remove newline between function signature and '{'. +nl_fdef_brace = ignore # ignore/add/remove/force/not_defined -# Whether to put a newline after semicolons, except in 'for' statements -nl_after_semicolon = false # false/true +# 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 -# Whether to put a newline after brace open. -# This also adds a newline before the matching brace close. -nl_after_brace_open = false # false/true +# Add or remove newline between C++11 lambda signature and '{'. +nl_cpp_ldef_brace = ignore # ignore/add/remove/force/not_defined -# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is -# placed between the open brace and a trailing single-line comment. -nl_after_brace_open_cmt = false # false/true +# Add or remove newline between 'return' and the return expression. +nl_return_expr = ignore # ignore/add/remove/force/not_defined -# Whether to put a newline after a virtual brace open with a non-empty body. +# Whether to add a newline after semicolons, except in 'for' statements. +nl_after_semicolon = false # true/false + +# 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/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/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/not_defined + +# Whether to add a newline after '{'. This also adds a newline before the +# matching '}'. +nl_after_brace_open = false # true/false + +# Whether to add a newline between the open brace and a trailing single-line +# comment. Requires nl_after_brace_open=true. +nl_after_brace_open_cmt = false # true/false + +# Whether to add a newline after a virtual brace open with a non-empty body. # These occur in un-braced if/while/do/for statement bodies. -nl_after_vbrace_open = false # false/true +nl_after_vbrace_open = false # true/false -# Whether to put a newline after a virtual brace open with an empty body. +# Whether to add a newline after a virtual brace open with an empty body. # These occur in un-braced if/while/do/for statement bodies. -nl_after_vbrace_open_empty = false # false/true +nl_after_vbrace_open_empty = false # true/false -# Whether to put a newline after a brace close. -# Does not apply if followed by a necessary ';'. -nl_after_brace_close = false # false/true +# Whether to add a newline after '}'. Does not apply if followed by a +# necessary ';'. +nl_after_brace_close = false # true/false -# Whether to put a newline after a virtual brace close. -# Would add a newline before return in: 'if (foo) a++; return;' -nl_after_vbrace_close = false # false/true +# Whether to add a newline after a virtual brace close, +# as in 'if (foo) a++; <here> return;'. +nl_after_vbrace_close = false # true/false -# Control the newline between the close brace and 'b' in: 'struct { int a; } b;' -# Affects enums, unions, and structures. If set to ignore, uses nl_after_brace_close -nl_brace_struct_var = ignore # ignore/add/remove/force +# Add or remove newline between the close brace and identifier, +# as in 'struct { int a; } <here> b;'. Affects enumerations, unions and +# structures. If set to ignore, uses nl_after_brace_close. +nl_brace_struct_var = ignore # ignore/add/remove/force/not_defined -# Whether to alter newlines in '#define' macros -nl_define_macro = true # false/true +# Whether to alter newlines in '#define' macros. +nl_define_macro = false # true/false -# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif' -nl_squeeze_ifdef = false # false/true +# Whether to alter newlines between consecutive parenthesis closes. The number +# of closing parentheses in a line will depend on respective open parenthesis +# lines. +nl_squeeze_paren_close = false # true/false -# Add or remove blank line before 'if' -nl_before_if = add # ignore/add/remove/force +# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and +# '#endif'. Does not affect top-level #ifdefs. +nl_squeeze_ifdef = false # true/false -# Add or remove blank line after 'if' statement -nl_after_if = ignore # ignore/add/remove/force +# Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well. +nl_squeeze_ifdef_top_level = false # true/false -# Add or remove blank line before 'for' -nl_before_for = add # ignore/add/remove/force +# Add or remove blank line before 'if'. +nl_before_if = ignore # ignore/add/remove/force/not_defined -# Add or remove blank line after 'for' statement -nl_after_for = ignore # ignore/add/remove/force +# Add or remove blank line after 'if' statement. Add/Force work only if the +# next token is not a closing brace. +nl_after_if = ignore # ignore/add/remove/force/not_defined -# Add or remove blank line before 'while' -nl_before_while = add # ignore/add/remove/force +# Add or remove blank line before 'for'. +nl_before_for = ignore # ignore/add/remove/force/not_defined -# Add or remove blank line after 'while' statement -nl_after_while = ignore # ignore/add/remove/force +# Add or remove blank line after 'for' statement. +nl_after_for = ignore # ignore/add/remove/force/not_defined -# Add or remove blank line before 'switch' -nl_before_switch = add # ignore/add/remove/force +# Add or remove blank line before 'while'. +nl_before_while = ignore # ignore/add/remove/force/not_defined -# Add or remove blank line after 'switch' statement -nl_after_switch = ignore # ignore/add/remove/force +# Add or remove blank line after 'while' statement. +nl_after_while = ignore # ignore/add/remove/force/not_defined -# Add or remove blank line before 'do' -nl_before_do = add # ignore/add/remove/force +# Add or remove blank line before 'switch'. +nl_before_switch = ignore # ignore/add/remove/force/not_defined -# Add or remove blank line after 'do/while' statement -nl_after_do = ignore # ignore/add/remove/force +# Add or remove blank line after 'switch' statement. +nl_after_switch = ignore # ignore/add/remove/force/not_defined -# Whether to double-space commented-entries in struct/enum -nl_ds_struct_enum_cmt = true # false/true +# Add or remove blank line before 'synchronized'. +nl_before_synchronized = ignore # ignore/add/remove/force/not_defined -# Whether to double-space before the close brace of a struct/union/enum -# (lower priority than 'eat_blanks_before_close_brace') -nl_ds_struct_enum_close_brace = true # false/true +# Add or remove blank line after 'synchronized' statement. +nl_after_synchronized = ignore # ignore/add/remove/force/not_defined -# Add or remove a newline around a class colon. -# Related to pos_class_colon, nl_class_init_args, and pos_comma. -nl_class_colon = ignore # ignore/add/remove/force +# Add or remove blank line before 'do'. +nl_before_do = ignore # ignore/add/remove/force/not_defined -# Change simple unbraced if statements into a one-liner -# 'if(b)\n i++;' => 'if(b) i++;' -nl_create_if_one_liner = true # false/true +# Add or remove blank line after 'do/while' statement. +nl_after_do = ignore # ignore/add/remove/force/not_defined -# Change simple unbraced for statements into a one-liner -# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);' -nl_create_for_one_liner = true # false/true +# Whether to put a blank line before 'return' statements, unless after an open +# brace. +nl_before_return = false # true/false -# Change simple unbraced while statements into a one-liner -# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);' -nl_create_while_one_liner = true # false/true +# Whether to put a blank line after 'return' statements, unless followed by a +# close brace. +nl_after_return = false # true/false -# -# Positioning options -# +# Whether to put a blank line before a member '.' or '->' operators. +nl_before_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 + +# Whether to force a newline before '}' of a 'struct'/'union'/'enum'. +# (Lower priority than eat_blanks_before_close_brace.) +nl_ds_struct_enum_close_brace = false # true/false + +# Add or remove newline before or after (depending on pos_class_colon) a class +# colon, as in 'class Foo <here> : <or here> public Bar'. +nl_class_colon = ignore # ignore/add/remove/force/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/not_defined -# The position of arithmetic operators in wrapped expressions -pos_arith = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force +# Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }' +# into a single line. If true, prevents other brace newline rules from turning +# such code into four lines. +nl_namespace_two_to_one_liner = false # true/false -# The position of assignment in wrapped expressions. -# Do not affect '=' followed by '{' -pos_assign = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force +# Whether to remove a newline in simple unbraced if statements, turning them +# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'. +nl_create_if_one_liner = false # true/false -# The position of boolean operators in wrapped expressions -pos_bool = lead_break # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force +# Whether to remove a newline in simple unbraced for statements, turning them +# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'. +nl_create_for_one_liner = false # true/false -# The position of comparison operators in wrapped expressions -pos_compare = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force +# Whether to remove a newline in simple unbraced while statements, turning +# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'. +nl_create_while_one_liner = false # true/false -# The position of conditional (b ? t : f) operators in wrapped expressions -pos_conditional = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force +# Whether to collapse a function definition whose body (not counting braces) +# is only one line so that the entire definition (prototype, braces, body) is +# a single line. +nl_create_func_def_one_liner = false # true/false -# The position of the comma in wrapped expressions -pos_comma = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force +# Whether to split one-line simple unbraced if statements into three lines by +# adding newlines, as in 'int a[12] = { <here> 0 <here> };'. +nl_create_list_one_liner = false # true/false -# The position of the comma in the constructor initialization list -pos_class_comma = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force +# Whether to split one-line simple unbraced if statements into two lines by +# adding a newline, as in 'if(b) <here> i++;'. +nl_split_if_one_liner = false # true/false -# The position of colons between constructor and member initialization -pos_class_colon = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force +# Whether to split one-line simple unbraced for statements into two lines by +# adding a newline, as in 'for (...) <here> stmt;'. +nl_split_for_one_liner = false # true/false + +# Whether to split one-line simple unbraced while statements into two lines by +# adding a newline, as in 'while (expr) <here> stmt;'. +nl_split_while_one_liner = false # true/false + +# 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 # -# Line Splitting options +# Blank line options # -# Try to limit code width to N number of columns -code_width = 80 # number +# The maximum number of consecutive newlines (3 = 2 blank lines). +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. Where +# applicable, this option is overridden with eat_blanks_after_open_brace=true +nl_before_func_body_def = 0 # unsigned number -# Whether to fully split long 'for' statements at semi-colons -ls_for_split_full = false # false/true +# The number of newlines before a class constructor/destructor prototype. +nl_before_func_class_proto = 0 # unsigned number -# Whether to fully split long function protos/calls at commas -ls_func_split_full = true # false/true +# The number of newlines before a class constructor/destructor definition. +nl_before_func_class_def = 0 # unsigned number -# Whether to split lines as close to code_width as possible and ignore some groupings -ls_code_width = false # false/true +# The number of newlines after a function prototype. +nl_after_func_proto = 0 # unsigned number +# The number of newlines after a function prototype, if not followed by +# another function prototype. +nl_after_func_proto_group = 0 # unsigned number + +# The number of newlines after a class constructor/destructor prototype. +nl_after_func_class_proto = 0 # unsigned number + +# The number of newlines after a class constructor/destructor prototype, +# if not followed by another constructor/destructor prototype. +nl_after_func_class_proto_group = 0 # unsigned number + +# Whether one-line method definitions inside a class body should be treated +# as if they were prototypes for the purposes of adding newlines. # -# Blank line options +# Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def +# and nl_before_func_class_def for one-liners. +nl_class_leave_one_liner_groups = false # true/false + +# The number of newlines after '}' of a multi-line function body. +nl_after_func_body = 0 # unsigned number + +# The number of newlines after '}' of a multi-line function body in a class +# declaration. Also affects class constructors/destructors. # +# Overrides nl_after_func_body. +nl_after_func_body_class = 0 # unsigned number -# The maximum consecutive newlines -nl_max = 3 # number +# The number of newlines after '}' of a single line function body. Also +# affects class constructors/destructors. +# +# Overrides nl_after_func_body and nl_after_func_body_class. +nl_after_func_body_one_liner = 0 # unsigned number -# The number of newlines after a function prototype, if followed by another function prototype -nl_after_func_proto = 0 # 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 after a function prototype, if not followed by another function prototype -nl_after_func_proto_group = 0 # 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 '}' of a multi-line function body -nl_after_func_body = 2 # number +# The number of newlines after a block of typedefs. +# +# 0: No change (default). +nl_typedef_blk_end = 0 # unsigned number -# The number of newlines after '}' of a multi-line function body in a class declaration -nl_after_func_body_class = 0 # 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 after '}' of a single line function body -nl_after_func_body_one_liner = 2 # 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 = 2 # number +nl_before_block_comment = 0 # unsigned number # The minimum number of newlines before a single-line C comment. # Doesn't apply if after a brace open or other single-line C comments. -nl_before_c_comment = 2 # number +nl_before_c_comment = 0 # unsigned number # The minimum number of newlines before a CPP comment. # Doesn't apply if after a brace open or other CPP comments. -nl_before_cpp_comment = 2 # number +nl_before_cpp_comment = 0 # unsigned number # Whether to force a newline after a multi-line comment. -nl_after_multiline_comment = true # false/true +nl_after_multiline_comment = false # true/false -# The number of newlines after '}' or ';' of a struct/enum/union definition -nl_after_struct = 0 # number +# Whether to force a newline after a label's colon. +nl_after_label_colon = false # true/false -# The number of newlines after '}' or ';' of a class definition -nl_after_class = 0 # number +# The number of newlines after '}' or ';' of a struct/enum/union definition. +nl_after_struct = 0 # unsigned number -# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label. -# Will not change the newline count if after a brace open. -# 0 = No change. -nl_before_access_spec = 2 # number +# The number of newlines before a class definition. +nl_before_class = 0 # unsigned number -# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label. -# 0 = No change. -nl_after_access_spec = 2 # number +# The number of newlines after '}' or ';' of a class definition. +nl_after_class = 0 # unsigned number -# The number of newlines between a function def and the function comment. -# 0 = No change. -nl_comment_func_def = 1 # number +# The number of newlines before a namespace. +nl_before_namespace = 0 # unsigned number -# The number of newlines after a try-catch-finally block that isn't followed by a brace close. -# 0 = No change. -nl_after_try_catch_finally = 1 # 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 before and after a property, indexer or event decl. -# 0 = No change. -nl_around_cs_property = 0 # number +# The number of newlines after '}' of a namespace. +nl_after_namespace = 0 # unsigned number -# The number of newlines between the get/set/add/remove handlers in C#. -# 0 = No change. -nl_between_get_set = 0 # number +# The number of newlines before an access specifier label. This also includes +# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count +# if after a brace open. +# +# 0: No change (default). +nl_before_access_spec = 0 # unsigned number -# Add or remove newline between C# property and the '{' -nl_property_brace = ignore # ignore/add/remove/force +# The number of newlines after an access specifier label. This also includes +# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count +# if after a brace open. +# +# 0: No change (default). +# +# Overrides nl_typedef_blk_start and nl_var_def_blk_start. +nl_after_access_spec = 0 # unsigned number -# Whether to remove blank lines after '{' -eat_blanks_after_open_brace = true # false/true +# The number of newlines between a function definition and the function +# comment, as in '// comment\n <here> void foo() {...}'. +# +# 0: No change (default). +nl_comment_func_def = 0 # unsigned number -# Whether to remove blank lines before '}' -eat_blanks_before_close_brace = true # false/true +# The number of newlines after a try-catch-finally block that isn't followed +# by a brace close. +# +# 0: No change (default). +nl_after_try_catch_finally = 0 # unsigned number -# How aggressively to remove extra newlines not in preproc. -# 0: No change +# Whether to remove blank lines after '{'. +eat_blanks_after_open_brace = true # true/false + +# Whether to remove blank lines before '}'. +eat_blanks_before_close_brace = true # true/false + +# How aggressively to remove extra newlines not in preprocessor. +# +# 0: No change (default) # 1: Remove most newlines not handled by other config # 2: Remove all newlines and reformat completely by config -nl_remove_extra_newlines = 0 # number +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 # false/true +# The number of newlines before a whole-file #ifdef. +# +# 0: No change (default). +nl_before_whole_file_ifdef = 0 # unsigned number -# Whether to put a blank line after 'return' statements, unless followed by a close brace. -nl_after_return = true # false/true +# The number of newlines after a whole-file #ifdef. +# +# 0: No change (default). +nl_after_whole_file_ifdef = 0 # unsigned number -# Whether to put a newline after a Java annotation statement. -# Only affects annotations that are after a newline. -nl_after_annotation = ignore # ignore/add/remove/force +# The number of newlines before a whole-file #endif. +# +# 0: No change (default). +nl_before_whole_file_endif = 0 # unsigned number -# Controls the newline between two annotations. -nl_between_annotation = ignore # ignore/add/remove/force +# The number of newlines after a whole-file #endif. +# +# 0: No change (default). +nl_after_whole_file_endif = 0 # unsigned number # -# Code modifying options (non-whitespace) +# Positioning options # -# Add or remove braces on single-line 'do' statement -mod_full_brace_do = add # ignore/add/remove/force +# The position of arithmetic operators in wrapped expressions. +pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -# Add or remove braces on single-line 'for' statement -mod_full_brace_for = add # ignore/add/remove/force +# The position of assignment in wrapped expressions. Do not affect '=' +# followed by '{'. +pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -# Add or remove braces on single-line function definitions. (Pawn) -mod_full_brace_function = ignore # ignore/add/remove/force +# The position of Boolean operators in wrapped expressions. +pos_bool = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'. -mod_full_brace_if = add # ignore/add/remove/force +# The position of comparison operators in wrapped expressions. +pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -# Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if. -# If any must be braced, they are all braced. If all can be unbraced, then the braces are removed. -mod_full_brace_if_chain = false # false/true +# The position of conditional operators, as in the '?' and ':' of +# 'expr ? stmt : stmt', in wrapped expressions. +pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -# Don't remove braces around statements that span N newlines -mod_full_brace_nl = 1 # number +# The position of the comma in wrapped expressions. +pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of the comma in enum entries. +pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of the comma in the base class list if there is more than one +# line. Affects nl_class_init_args. +pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of the comma in the constructor initialization list. +# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon. +pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of trailing/leading class colon, between class and base class +# list. Affects nl_class_colon. +pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# The position of colons between constructor and member initialization. +# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma. +pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force + +# 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 = 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 + +# +# Code alignment options (not left column spaces/tabs) +# + +# Whether to keep non-indenting tabs. +align_keep_tabs = false # true/false + +# Whether to use tabs for aligning. +align_with_tabs = false # true/false + +# Whether to bump out to the next tab when aligning. +align_on_tabstop = false # true/false + +# Whether to right-align numbers. +align_number_right = false # true/false + +# Whether to keep whitespace not required for alignment. +align_keep_extra_space = false # true/false + +# Whether to align variable definitions in prototypes and functions. +align_func_params = false # true/false + +# The span for aligning parameter definitions in function on parameter name. +# +# 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 # 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). +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 # number + +# The span for aligning variable definitions. +# +# 0: Don't align (default). +align_var_def_span = 0 # unsigned number + +# How to consider (or treat) the '*' in the alignment of variable definitions. +# +# 0: Part of the type 'void * foo;' (default) +# 1: Part of the variable 'void *foo;' +# 2: Dangling 'void *foo;' +# Dangling: the '*' will not be taken into account when aligning. +align_var_def_star_style = 0 # unsigned number + +# How to consider (or treat) the '&' in the alignment of variable definitions. +# +# 0: Part of the type 'long & foo;' (default) +# 1: Part of the variable 'long &foo;' +# 2: Dangling 'long &foo;' +# Dangling: the '&' will not be taken into account when aligning. +align_var_def_amp_style = 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 # number + +# The gap for aligning variable definitions. +align_var_def_gap = 0 # unsigned number + +# Whether to align the colon in struct bit fields. +align_var_def_colon = false # true/false + +# The gap for aligning the colon in struct bit fields. +align_var_def_colon_gap = 0 # unsigned number + +# Whether to align any attribute after the variable name. +align_var_def_attribute = false # true/false + +# Whether to align inline struct/enum/union variable definitions. +align_var_def_inline = false # true/false + +# The span for aligning on '=' in assignments. +# +# 0: Don't align (default). +align_assign_span = 0 # unsigned number + +# The span for aligning on '=' in function prototype modifier. +# +# 0: Don't align (default). +align_assign_func_proto_span = 0 # unsigned number + +# The threshold for aligning on '=' in assignments. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_assign_thresh = 0 # number + +# How to apply align_assign_span to function declaration "assignments", i.e. +# 'virtual void foo() = 0' or '~foo() = {default|delete}'. +# +# 0: Align with other assignments (default) +# 1: Align with each other, ignoring regular assignments +# 2: Don't align +align_assign_decl_func = 0 # unsigned number + +# The span for aligning on '=' in enums. +# +# 0: Don't align (default). +align_enum_equ_span = 0 # unsigned number + +# The threshold for aligning on '=' in enums. +# Use a negative number for absolute thresholds. +# +# 0: no limit (default). +align_enum_equ_thresh = 0 # number + +# The span for aligning class member definitions. +# +# 0: Don't align (default). +align_var_class_span = 0 # unsigned number + +# The threshold for aligning class member definitions. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_var_class_thresh = 0 # number + +# The gap for aligning class member definitions. +align_var_class_gap = 0 # unsigned number + +# The span for aligning struct/union member definitions. +# +# 0: Don't align (default). +align_var_struct_span = 0 # unsigned number + +# The threshold for aligning struct/union member definitions. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_var_struct_thresh = 0 # number + +# The gap for aligning struct/union member definitions. +align_var_struct_gap = 0 # unsigned number + +# The span for aligning struct initializer values. +# +# 0: Don't align (default). +align_struct_init_span = 0 # unsigned number + +# The span for aligning single-line typedefs. +# +# 0: Don't align (default). +align_typedef_span = 0 # unsigned number + +# The minimum space between the type and the synonym of a typedef. +align_typedef_gap = 0 # unsigned number + +# How to align typedef'd functions with other typedefs. +# +# 0: Don't mix them at all (default) +# 1: Align the open parenthesis with the types +# 2: Align the function type name with the other type names +align_typedef_func = 0 # unsigned number + +# How to consider (or treat) the '*' in the alignment of typedefs. +# +# 0: Part of the typedef type, 'typedef int * pint;' (default) +# 1: Part of type name: 'typedef int *pint;' +# 2: Dangling: 'typedef int *pint;' +# Dangling: the '*' will not be taken into account when aligning. +align_typedef_star_style = 0 # unsigned number + +# How to consider (or treat) the '&' in the alignment of typedefs. +# +# 0: Part of the typedef type, 'typedef int & intref;' (default) +# 1: Part of type name: 'typedef int &intref;' +# 2: Dangling: 'typedef int &intref;' +# Dangling: the '&' will not be taken into account when aligning. +align_typedef_amp_style = 0 # unsigned number + +# The span for aligning comments that end lines. +# +# 0: Don't align (default). +align_right_cmt_span = 0 # unsigned number + +# Minimum number of columns between preceding text and a trailing comment in +# order for the comment to qualify for being aligned. Must be non-zero to have +# an effect. +align_right_cmt_gap = 0 # unsigned number + +# If aligning comments, whether to mix with comments after '}' and #endif with +# less than three spaces before the comment. +align_right_cmt_mix = false # true/false + +# Whether to only align trailing comments that are at the same brace level. +align_right_cmt_same_level = false # true/false + +# Minimum column at which to align trailing comments. Comments which are +# aligned beyond this column, but which can be aligned in a lesser column, +# may be "pulled in". +# +# 0: Ignore (default). +align_right_cmt_at_col = 0 # unsigned number + +# The span for aligning function prototypes. +# +# 0: Don't align (default). +align_func_proto_span = 0 # unsigned number -# Add or remove braces on single-line 'while' statement -mod_full_brace_while = add # ignore/add/remove/force +# The threshold for aligning function prototypes. +# Use a negative number for absolute thresholds. +# +# 0: No limit (default). +align_func_proto_thresh = 0 # number -# Add or remove braces on single-line 'using ()' statement -mod_full_brace_using = ignore # ignore/add/remove/force +# Minimum gap between the return type and the function name. +align_func_proto_gap = 0 # unsigned number -# Add or remove unnecessary paren on 'return' statement -mod_paren_on_return = remove # ignore/add/remove/force +# Whether to align function prototypes on the 'operator' keyword instead of +# what follows. +align_on_operator = false # true/false -# Whether to change optional semicolons to real semicolons -mod_pawn_semicolon = false # false/true +# Whether to mix aligning prototype and variable declarations. If true, +# align_var_def_XXX options are used instead of align_func_proto_XXX options. +align_mix_var_proto = false # true/false -# Add parens on 'while' and 'if' statement around bools -mod_full_paren_if_bool = true # false/true +# Whether to align single-line functions with function prototypes. +# Uses align_func_proto_span. +align_single_line_func = false # true/false -# Whether to remove superfluous semicolons -mod_remove_extra_semicolon = true # false/true +# Whether to align the open brace of single-line functions. +# Requires align_single_line_func=true. Uses align_func_proto_span. +align_single_line_brace = false # true/false -# If a function body exceeds the specified number of newlines and doesn't have a comment after -# the close brace, a comment will be added. -mod_add_long_function_closebrace_comment = 0 # number +# Gap for align_single_line_brace. +align_single_line_brace_gap = 0 # unsigned number -# If a switch body exceeds the specified number of newlines and doesn't have a comment after -# the close brace, a comment will be added. -mod_add_long_switch_closebrace_comment = 0 # 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 -# If an #ifdef body exceeds the specified number of newlines and doesn't have a comment after -# the #endif, a comment will be added. -mod_add_long_ifdef_endif_comment = 1 # number +# Whether to align macro functions and variables together. +align_pp_define_together = false # true/false -# If an #ifdef or #else body exceeds the specified number of newlines and doesn't have a comment after -# the #else, a comment will be added. -mod_add_long_ifdef_else_comment = 1 # 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 -# If TRUE, will sort consecutive single-line 'import' statements [Java, D] -mod_sort_import = false # false/true +# The minimum space between label and value of a preprocessor define. +align_pp_define_gap = 0 # unsigned number -# If TRUE, will sort consecutive single-line 'using' statements [C#] -mod_sort_using = false # false/true +# Whether to align lines that start with '<<' with previous '<<'. +# +# Default: true +align_left_shift = true # true/false -# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C] -# This is generally a bad idea, as it may break your code. -mod_sort_include = false # false/true +# Whether to align comma-separated statements following '<<' (as used to +# initialize Eigen matrices). +align_eigen_comma_init = false # true/false -# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace. -mod_move_case_break = true # false/true +# Whether to align text after 'asm volatile ()' colons. +align_asm_colon = false # true/false -# Will add or remove the braces around a fully braced case statement. -# Will only remove the braces if there are no variable declarations in the block. -mod_case_brace = ignore # ignore/add/remove/force +# +# Comment modification options +# -# If TRUE, it will remove a void 'return;' that appears as the last statement in a function. -mod_remove_empty_return = true # false/true +# Try to wrap comments at N columns. +cmt_width = 0 # unsigned number +# How to reflow comments. +# +# 0: No reflowing (apart from the line wrapping due to cmt_width) (default) +# 1: No touching at all +# 2: Full reflow (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] = "^..." # -# Comment modifications +# 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 -# Try to wrap comments at cmt_width columns -cmt_width = 80 # number +# Whether to convert all tabs to spaces in comments. If false, tabs in +# comments are left alone, unless used for indenting. +cmt_convert_tab_to_spaces = true # true/false -# Set the comment reflow mode (default: 0) -# 0: no reflowing (apart from the line wrapping due to cmt_width) -# 1: no touching at all -# 2: full reflow -cmt_reflow_mode = 0 # number +# Whether to apply changes to multi-line comments, including cmt_width, +# keyword substitution and leading chars. +# +# 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 -# If false, disable all multi-line comment changes, including cmt_width. keyword substitution, and leading chars. -# Default is true. -cmt_indent_multi = true # false/true +# Whether to group c-comments that look like they are in a block. +cmt_c_group = false # true/false -# Whether to group c-comments that look like they are in a block -cmt_c_group = false # false/true +# Whether to put an empty '/*' on the first line of the combined c-comment. +cmt_c_nl_start = false # true/false -# Whether to put an empty '/*' on the first line of the combined c-comment -cmt_c_nl_start = false # false/true +# Whether to add a newline before the closing '*/' of the combined c-comment. +cmt_c_nl_end = false # true/false -# Whether to put a newline before the closing '*/' of the combined c-comment -cmt_c_nl_end = false # false/true +# Whether to change cpp-comments into c-comments. +cmt_cpp_to_c = false # true/false -# Whether to group cpp-comments that look like they are in a block -cmt_cpp_group = false # false/true +# Whether to group cpp-comments that look like they are in a block. Only +# meaningful if cmt_cpp_to_c=true. +cmt_cpp_group = false # true/false # Whether to put an empty '/*' on the first line of the combined cpp-comment -cmt_cpp_nl_start = false # false/true +# when converting to a c-comment. +# +# Requires cmt_cpp_to_c=true and cmt_cpp_group=true. +cmt_cpp_nl_start = false # true/false + +# Whether to add a newline before the closing '*/' of the combined cpp-comment +# when converting to a c-comment. +# +# Requires cmt_cpp_to_c=true and cmt_cpp_group=true. +cmt_cpp_nl_end = false # true/false + +# Whether to put a star on subsequent comment lines. +cmt_star_cont = false # true/false + +# The number of spaces to insert at the start of subsequent comment lines. +cmt_sp_before_star_cont = 0 # unsigned number + +# The number of spaces to insert after the star on subsequent comment lines. +cmt_sp_after_star_cont = 0 # unsigned number + +# For multi-line comments with a '*' lead, remove leading spaces if the first +# and last lines of the comment are the same length. +# +# Default: true +cmt_multi_check_last = true # true/false + +# For multi-line comments with a '*' lead, remove leading spaces if the first +# and last lines of the comment are the same length AND if the length is +# bigger as the first_len minimum. +# +# Default: 4 +cmt_multi_first_len_minimum = 4 # unsigned number + +# Path to a file that contains text to insert at the beginning of a file if +# the file doesn't start with a C/C++ comment. If the inserted text contains +# '$(filename)', that will be replaced with the current file's name. +cmt_insert_file_header = "" # string + +# Path to a file that contains text to insert at the end of a file if the +# file doesn't end with a C/C++ comment. If the inserted text contains +# '$(filename)', that will be replaced with the current file's name. +cmt_insert_file_footer = "" # string + +# Path to a file that contains text to insert before a function definition if +# the function isn't preceded by a C/C++ comment. If the inserted text +# contains '$(function)', '$(javaparam)' or '$(fclass)', these will be +# replaced with, respectively, the name of the function, the javadoc '@param' +# and '@return' stuff, or the name of the class to which the member function +# belongs. +cmt_insert_func_header = "" # string + +# Path to a file that contains text to insert before a class if the class +# isn't preceded by a C/C++ comment. If the inserted text contains '$(class)', +# that will be replaced with the class name. +cmt_insert_class_header = "" # string + +# Path to a file that contains text to insert before an Objective-C message +# specification, if the method isn't preceded by a C/C++ comment. If the +# inserted text contains '$(message)' or '$(javaparam)', these will be +# replaced with, respectively, the name of the function, or the javadoc +# '@param' and '@return' stuff. +cmt_insert_oc_msg_header = "" # string + +# Whether a comment should be inserted if a preprocessor is encountered when +# stepping backwards from a function name. +# +# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and +# cmt_insert_class_header. +cmt_insert_before_preproc = false # true/false + +# Whether a comment should be inserted if a function is declared inline to a +# class definition. +# +# Applies to cmt_insert_func_header. +# +# Default: true +cmt_insert_before_inlines = true # true/false + +# Whether a comment should be inserted if the function is a class constructor +# or destructor. +# +# Applies to cmt_insert_func_header. +cmt_insert_before_ctor_dtor = false # true/false + +# +# Code modifying options (non-whitespace) +# + +# Add or remove braces on a single-line 'do' statement. +mod_full_brace_do = ignore # ignore/add/remove/force/not_defined + +# Add or remove braces on a single-line 'for' statement. +mod_full_brace_for = add # 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 = add # 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 +# needs braces, and will only be removed if they can be removed from all +# blocks. +# +# Overrides mod_full_brace_if. +mod_full_brace_if_chain = false # true/false + +# Whether to add braces to all blocks of an 'if'/'else if'/'else' chain. +# If true, mod_full_brace_if_chain will only remove braces from an 'if' that +# does not have an 'else if' or 'else'. +mod_full_brace_if_chain_only = false # true/false + +# Add or remove braces on single-line 'while' statement. +mod_full_brace_while = add # ignore/add/remove/force/not_defined + +# Add or remove braces on single-line 'using ()' statement. +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 + +# Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks +# which span multiple lines. +# +# Affects: +# mod_full_brace_for +# mod_full_brace_if +# mod_full_brace_if_chain +# mod_full_brace_if_chain_only +# mod_full_brace_while +# mod_full_brace_using +# +# Does not affect: +# mod_full_brace_do +# mod_full_brace_function +mod_full_brace_nl_block_rem_mlcond = false # true/false + +# Add or remove unnecessary parenthesis on 'return' statement. +mod_paren_on_return = ignore # ignore/add/remove/force/not_defined + +# Whether to fully parenthesize Boolean expressions in 'while' and 'if' +# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'. +mod_full_paren_if_bool = false # true/false + +# Whether to remove superfluous semicolons. +mod_remove_extra_semicolon = false # true/false + +# If a function body exceeds the specified number of newlines and doesn't have +# a comment after the close brace, a comment will be added. +mod_add_long_function_closebrace_comment = 0 # unsigned number + +# If a namespace body exceeds the specified number of newlines and doesn't +# have a comment after the close brace, a comment will be added. +mod_add_long_namespace_closebrace_comment = 0 # unsigned number + +# If a class body exceeds the specified number of newlines and doesn't have a +# comment after the close brace, a comment will be added. +mod_add_long_class_closebrace_comment = 0 # unsigned number -# Whether to put a newline before the closing '*/' of the combined cpp-comment -cmt_cpp_nl_end = false # false/true +# If a switch body exceeds the specified number of newlines and doesn't have a +# comment after the close brace, a comment will be added. +mod_add_long_switch_closebrace_comment = 0 # unsigned number -# Whether to change cpp-comments into c-comments -cmt_cpp_to_c = false # false/true +# If an #ifdef body exceeds the specified number of newlines and doesn't have +# a comment after the #endif, a comment will be added. +mod_add_long_ifdef_endif_comment = 0 # unsigned number -# Whether to put a star on subsequent comment lines -cmt_star_cont = false # false/true +# If an #ifdef or #else body exceeds the specified number of newlines and +# doesn't have a comment after the #else, a comment will be added. +mod_add_long_ifdef_else_comment = 0 # unsigned number -# The number of spaces to insert at the start of subsequent comment lines -cmt_sp_before_star_cont = 0 # number +# Whether to take care of the case by the mod_sort_xx options. +mod_sort_case_sensitive = false # true/false -# The number of spaces to insert after the star on subsequent comment lines -cmt_sp_after_star_cont = 0 # number +# Whether to sort consecutive single-line 'import' statements. +mod_sort_import = false # true/false -# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of -# the comment are the same length. Default=True -cmt_multi_check_last = true # false/true +# 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 = true # true/false -# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment. -# Will substitute $(filename) with the current file's name. -cmt_insert_file_header = "" # string +# 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 -# The filename that contains text to insert at the end of a file if the file doesn't end with a C/C++ comment. -# Will substitute $(filename) with the current file's name. -cmt_insert_file_footer = "" # string +# 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 -# The filename that contains text to insert before a function implementation if the function isn't preceded with a C/C++ comment. -# Will substitute $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff. -# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... } -cmt_insert_func_header = "" # string +# Whether to prioritize '#include' and '#import' statements that contain +# angle over quotes when sorting is enabled. +mod_sort_incl_import_prioritize_angle_over_quotes = true # true/false -# The filename that contains text to insert before a class if the class isn't preceded with a C/C++ comment. -# Will substitute $(class) with the class name. -cmt_insert_class_header = "" # string +# Whether to ignore file extension in '#include' and '#import' statements +# for sorting comparison. +mod_sort_incl_import_ignore_extension = false # true/false -# The filename that contains text to insert before an Obj-C message specification if the method isn't preceded with a C/C++ comment. -# Will substitute $(message) with the function name and $(javaparam) with the javadoc @param and @return stuff. -cmt_insert_oc_msg_header = "" # string +# Whether to group '#include' and '#import' statements when sorting is enabled. +mod_sort_incl_import_grouping_enabled = true # true/false -# If a preprocessor is encountered when stepping backwards from a function name, then -# this option decides whether the comment should be inserted. -# Affects cmt_insert_oc_msg_header, cmt_insert_func_header and cmt_insert_class_header. -cmt_insert_before_preproc = false # false/true +# Whether to move a 'break' that appears after a fully braced 'case' before +# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'. +mod_move_case_break = false # true/false + +# Add or remove braces around a fully braced case statement. Will only remove +# braces if there are no variable declarations in the block. +mod_case_brace = ignore # ignore/add/remove/force/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/not_defined # # Preprocessor options # -# Control indent of preprocessors inside #if blocks at brace level 0 -pp_indent = 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/not_defined + +# Whether to indent #if/#else/#endif at the brace level. If false, these are +# indented from column 1. +pp_indent_at_level = false # true/false + +# Specifies the number of columns to indent preprocessors per level +# at brace level 0 (file-level). If pp_indent_at_level=false, also specifies +# the number of columns to indent preprocessors per level +# at brace level > 0 (function-level). +# +# Default: 1 +pp_indent_count = 1 # unsigned number + +# Add or remove space after # based on pp_level of #if blocks. +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 + +# The indent for '#region' and '#endregion' in C# and '#pragma region' in +# C/C++. Negative values decrease indent down to the first column. +pp_indent_region = 0 # number + +# Whether to indent the code between #region and #endregion. +pp_region_indent_code = false # true/false + +# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when +# not at file-level. Negative values decrease indent down to the first column. +# +# =0: Indent preprocessors using output_tab_size +# >0: Column at which all preprocessors will be indented +pp_indent_if = 0 # number + +# Whether to indent the code between #if, #else and #endif. +pp_if_indent_code = false # true/false + +# Whether to indent '#define' at the brace level. If false, these are +# indented from column 1. +pp_define_at_level = false # true/false + +# Whether to ignore the '#define' body while formatting. +pp_ignore_define_body = false # true/false + +# Whether to indent case statements between #if, #else, and #endif. +# Only applies to the indent of the preprocesser that the case statements +# directly inside of. +# +# Default: true +pp_indent_case = true # true/false + +# Whether to indent whole function definitions between #if, #else, and #endif. +# Only applies to the indent of the preprocesser that the function definition +# is directly inside of. +# +# Default: true +pp_indent_func_def = true # true/false + +# Whether to indent extern C blocks between #if, #else, and #endif. +# Only applies to the indent of the preprocesser that the extern block is +# directly inside of. +# +# Default: true +pp_indent_extern = true # true/false + +# Whether to indent braces directly inside #if, #else, and #endif. +# Only applies to the indent of the preprocesser that the braces are directly +# inside of. +# +# Default: true +pp_indent_brace = true # true/false + +# +# Sort includes options +# -# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false) -pp_indent_at_level = false # false/true +# The regex for include category with priority 0. +include_category_0 = "" # string -# If pp_indent_at_level=false, specifies the number of columns to indent per level. Default=1. -pp_indent_count = 1 # number +# The regex for include category with priority 1. +include_category_1 = "" # string -# Add or remove space after # based on pp_level of #if blocks -pp_space = add # ignore/add/remove/force +# The regex for include category with priority 2. +include_category_2 = "" # string -# Sets the number of spaces added with pp_space -pp_space_count = 0 # number +# +# Use or Do not Use options +# -# The indent for #region and #endregion in C# and '#pragma region' in C/C++ -pp_indent_region = 0 # number +# true: indent_func_call_param will be used (default) +# false: indent_func_call_param will NOT be used +# +# Default: true +use_indent_func_call_param = true # true/false -# Whether to indent the code between #region and #endregion -pp_region_indent_code = false # false/true +# The value of the indentation for a continuation line is calculated +# differently if the statement is: +# - a declaration: your case with QString fileName ... +# - an assignment: your case with pSettings = new QSettings( ... +# +# At the second case the indentation value might be used twice: +# - at the assignment +# - at the function call (if present) +# +# To prevent the double use of the indentation value, use this option with the +# value 'true'. +# +# true: indent_continue will be used only once +# false: indent_continue will be used every time (default) +use_indent_continue_only_once = false # true/false -# If pp_indent_at_level=true, sets the indent for #if, #else, and #endif when not at file-level -pp_indent_if = 0 # number +# The value might be used twice: +# - at the assignment +# - at the opening brace +# +# To prevent the double use of the indentation value, use this option with the +# value 'true'. +# +# true: indentation will be used only once +# false: indentation will be used every time (default) +indent_cpp_lambda_only_once = false # true/false + +# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the +# historic behavior, but is probably not the desired behavior, so this is off +# by default. +use_sp_after_angle_always = false # true/false + +# Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially, +# this tries to format these so that they match Qt's normalized form (i.e. the +# result of QMetaObject::normalizedSignature), which can slightly improve the +# performance of the QObject::connect call, rather than how they would +# otherwise be formatted. +# +# See options_for_QT.cpp for details. +# +# Default: true +use_options_overriding_for_qt_macros = true # true/false -# Control whether to indent the code between #if, #else and #endif when not at file-level -pp_if_indent_code = false # false/true +# 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 -# Whether to indent '#define' at the brace level (true) or from column 1 (false) -pp_define_at_level = false # false/true +# +# Warn levels - 1: error, 2: warning (default), 3: note +# -# You can force a token to be a type with the 'type' option. -# Example: -# type myfoo1 myfoo2 +# 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 +# Force - makes sure there is exactly 1 space/brace/newline/etc, +# behaves like Add in some contexts +# Remove - removes space/brace/newline/etc +# # -# You can create custom macro-based indentation using macro-open, -# macro-else and macro-close. -# Example: -# macro-open BEGIN_TEMPLATE_MESSAGE_MAP -# macro-open BEGIN_MESSAGE_MAP -# macro-close END_MESSAGE_MAP +# - Token(s) can be treated as specific type(s) with the 'set' option: +# `set tokenType tokenString [tokenString...]` # -# You can assign any keyword to any type with the set option. -# set func_call_user _ N_ +# Example: +# `set BOOL __AND__ __OR__` # -# The full syntax description of all custom definition config entries -# is shown below: +# tokenTypes are defined in src/token_enum.h, use them without the +# 'CT_' prefix: 'CT_BOOL' => 'BOOL' # -# define custom tokens as: -# - embed whitespace in token using '' escape character, or -# put token in quotes -# - these: ' " and ` are recognized as quote delimiters # -# type token1 token2 token3 ... -# ^ optionally specify multiple tokens on a single line -# define def_token output_token -# ^ output_token is optional, then NULL is assumed -# macro-open token -# macro-close token -# macro-else token -# set id token1 token2 ... -# ^ optionally specify multiple tokens on a single line -# ^ id is one of the names in token_enum.h sans the CT_ prefix, -# e.g. PP_PRAGMA +# - Token(s) can be treated as type(s) with the 'type' option. +# `type tokenString [tokenString...]` # -# all tokens are separated by any mix of ',' commas, '=' equal signs -# and whitespace (space, tab) +# Example: +# `type int c_uint_8 Rectangle` # +# This can also be achieved with `set TYPE int c_uint_8 Rectangle` +# +# +# To embed whitespace in tokenStrings use the '\' escape character, or quote +# the tokenStrings. These quotes are supported: "'` +# +# +# - Support for the auto detection of languages through the file ending can be +# added using the 'file_ext' command. +# `file_ext langType langString [langString..]` +# +# Example: +# `file_ext CPP .ch .cxx .cpp.in` +# +# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use +# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP' +# +# +# - Custom macro-based indentation can be set up using 'macro-open', +# 'macro-else' and 'macro-close'. +# `(macro-open | macro-else | macro-close) tokenString` +# +# Example: +# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP` +# `macro-open BEGIN_MESSAGE_MAP` +# `macro-close END_MESSAGE_MAP` +# +# +# option(s) with 'not default' value: 0 +# + +set PREPROC FUNC_API_CHECK_TEXTLOCK +set PREPROC FUNC_API_DEPRECATED_SINCE +set PREPROC FUNC_API_FAST +set PREPROC FUNC_API_LUA_ONLY +set PREPROC FUNC_API_NOEXPORT +set PREPROC FUNC_API_REMOTE_ONLY +set PREPROC FUNC_API_SINCE +set PREPROC FUNC_ATTR_ALWAYS_INLINE +set PREPROC FUNC_ATTR_CONST +set PREPROC FUNC_ATTR_MALLOC +set PREPROC FUNC_ATTR_NONNULL_ALL +set PREPROC FUNC_ATTR_NONNULL_ARG +set PREPROC FUNC_ATTR_NONNULL_RET +set PREPROC FUNC_ATTR_NORETURN +set PREPROC FUNC_ATTR_NO_SANITIZE_UNDEFINED +set PREPROC FUNC_ATTR_PRINTF +set PREPROC FUNC_ATTR_PURE +set PREPROC FUNC_ATTR_UNUSED +set PREPROC FUNC_ATTR_WARN_UNUSED_RESULT +set PREPROC REAL_FATTR_ALWAYS_INLINE +set PREPROC REAL_FATTR_CONST +set PREPROC REAL_FATTR_NONNULL_ALL +set PREPROC REAL_FATTR_PURE +set PREPROC REAL_FATTR_WARN_UNUSED_RESULT diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 580f591b11..3675591bbc 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -65,46 +65,50 @@ #include <stdbool.h> #include <string.h> -#include "nvim/log.h" -#include "nvim/vim.h" -#include "nvim/ascii.h" +#include "nvim/api/private/helpers.h" +#include "nvim/api/vim.h" #include "nvim/arabic.h" -#include "nvim/screen.h" +#include "nvim/ascii.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/cursor_shape.h" +#include "nvim/decoration.h" #include "nvim/diff.h" +#include "nvim/edit.h" #include "nvim/eval.h" #include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" #include "nvim/ex_getln.h" -#include "nvim/edit.h" +#include "nvim/extmark.h" #include "nvim/fileio.h" #include "nvim/fold.h" -#include "nvim/indent.h" +#include "nvim/garray.h" #include "nvim/getchar.h" #include "nvim/highlight.h" +#include "nvim/indent.h" +#include "nvim/lib/kvec.h" +#include "nvim/log.h" +#include "nvim/lua/executor.h" #include "nvim/main.h" #include "nvim/mark.h" -#include "nvim/extmark.h" -#include "nvim/decoration.h" #include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/menu.h" #include "nvim/message.h" #include "nvim/misc1.h" -#include "nvim/garray.h" #include "nvim/move.h" #include "nvim/normal.h" #include "nvim/option.h" +#include "nvim/os/time.h" #include "nvim/os_unix.h" #include "nvim/path.h" #include "nvim/plines.h" #include "nvim/popupmnu.h" #include "nvim/quickfix.h" #include "nvim/regexp.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/sign.h" #include "nvim/spell.h" @@ -116,12 +120,8 @@ #include "nvim/ui_compositor.h" #include "nvim/undo.h" #include "nvim/version.h" +#include "nvim/vim.h" #include "nvim/window.h" -#include "nvim/os/time.h" -#include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" -#include "nvim/lua/executor.h" -#include "nvim/lib/kvec.h" #define MB_FILLER_CHAR '<' /* character used when a double-width character * doesn't fit. */ @@ -168,8 +168,7 @@ static bool resizing = false; static char * provider_err = NULL; -static bool provider_invoke(NS ns_id, const char *name, LuaRef ref, - Array args, bool default_true) +static bool provider_invoke(NS ns_id, const char *name, LuaRef ref, Array args, bool default_true) { Error err = ERROR_INIT; @@ -208,10 +207,12 @@ void redraw_later(win_T *wp, int type) { if (!exiting && wp->w_redr_type < type) { wp->w_redr_type = type; - if (type >= NOT_VALID) + if (type >= NOT_VALID) { wp->w_lines_valid = 0; - if (must_redraw < type) /* must_redraw is the maximum of all windows */ + } + if (must_redraw < type) { /* must_redraw is the maximum of all windows */ must_redraw = type; + } } } @@ -270,10 +271,10 @@ void redraw_buf_range_later(buf_T *buf, linenr_T firstline, linenr_T lastline) if (wp->w_buffer == buf && lastline >= wp->w_topline && firstline < wp->w_botline) { if (wp->w_redraw_top == 0 || wp->w_redraw_top > firstline) { - wp->w_redraw_top = firstline; + wp->w_redraw_top = firstline; } if (wp->w_redraw_bot == 0 || wp->w_redraw_bot < lastline) { - wp->w_redraw_bot = lastline; + wp->w_redraw_bot = lastline; } redraw_later(wp, VALID); } @@ -288,20 +289,16 @@ void redraw_buf_range_later(buf_T *buf, linenr_T firstline, linenr_T lastline) * Note that when also inserting/deleting lines w_redraw_top and w_redraw_bot * may become invalid and the whole window will have to be redrawn. */ -void -redrawWinline( - win_T *wp, - linenr_T lnum -) +void redrawWinline(win_T *wp, linenr_T lnum) FUNC_ATTR_NONNULL_ALL { if (lnum >= wp->w_topline && lnum < wp->w_botline) { if (wp->w_redraw_top == 0 || wp->w_redraw_top > lnum) { - wp->w_redraw_top = lnum; + wp->w_redraw_top = lnum; } if (wp->w_redraw_bot == 0 || wp->w_redraw_bot < lnum) { - wp->w_redraw_bot = lnum; + wp->w_redraw_bot = lnum; } redraw_later(wp, VALID); } @@ -339,8 +336,9 @@ int update_screen(int type) } if (must_redraw) { - if (type < must_redraw) /* use maximal type */ + if (type < must_redraw) { /* use maximal type */ type = must_redraw; + } /* must_redraw is reset here, so that when we run into some weird * reason to redraw while busy redrawing (e.g., asynchronous @@ -350,8 +348,9 @@ int update_screen(int type) } /* Need to update w_lines[]. */ - if (curwin->w_lines_valid == 0 && type < NOT_VALID) + if (curwin->w_lines_valid == 0 && type < NOT_VALID) { type = NOT_VALID; + } /* Postpone the redrawing when it's not needed and when being called * recursively. */ @@ -452,8 +451,9 @@ int update_screen(int type) compute_cmdrow(); /* Check for changed highlighting */ - if (need_highlight_changed) + if (need_highlight_changed) { highlight_changed(); + } if (type == CLEAR) { // first clear screen screenclear(); // will reset clear_cmdline @@ -503,21 +503,24 @@ int update_screen(int type) redraw_tabline = true; } - if (clear_cmdline) /* going to clear cmdline (done below) */ + if (clear_cmdline) { /* going to clear cmdline (done below) */ check_for_delay(FALSE); + } /* Force redraw when width of 'number' or 'relativenumber' column * changes. */ if (curwin->w_redr_type < NOT_VALID && curwin->w_nrwidth != ((curwin->w_p_nu || curwin->w_p_rnu) - ? number_width(curwin) : 0)) + ? number_width(curwin) : 0)) { curwin->w_redr_type = NOT_VALID; + } /* * Only start redrawing if there is really something to do. */ - if (type == INVERTED) + if (type == INVERTED) { update_curswant(); + } if (curwin->w_redr_type < type && !((type == VALID && curwin->w_lines[0].wl_valid @@ -530,8 +533,9 @@ int update_screen(int type) && curwin->w_old_visual_mode == VIsual_mode && (curwin->w_valid & VALID_VIRTCOL) && curwin->w_old_curswant == curwin->w_curswant) - )) + )) { curwin->w_redr_type = type; + } // Redraw the tab pages line if needed. if (redraw_tabline || type >= NOT_VALID) { @@ -632,8 +636,9 @@ int update_screen(int type) } /* May put up an introductory message when not editing a file */ - if (!did_intro) + if (!did_intro) { maybe_intro_message(); + } did_intro = true; for (size_t i = 0; i < kv_size(providers); i++) { @@ -704,7 +709,7 @@ bool win_cursorline_standout(const win_T *wp) FUNC_ATTR_NONNULL_ALL { return wp->w_p_cul - || (wp->w_p_cole > 0 && (VIsual_active || !conceal_cursor_line(wp))); + || (wp->w_p_cole > 0 && (VIsual_active || !conceal_cursor_line(wp))); } /* @@ -715,22 +720,22 @@ bool win_cursorline_standout(const win_T *wp) * * How the window is redrawn depends on wp->w_redr_type. Each type also * implies the one below it. - * NOT_VALID redraw the whole window - * SOME_VALID redraw the whole window but do scroll when possible - * REDRAW_TOP redraw the top w_upd_rows window lines, otherwise like VALID - * INVERTED redraw the changed part of the Visual area - * INVERTED_ALL redraw the whole Visual area - * VALID 1. scroll up/down to adjust for a changed w_topline - * 2. update lines at the top when scrolled down - * 3. redraw changed text: - * - if wp->w_buffer->b_mod_set set, update lines between - * b_mod_top and b_mod_bot. - * - if wp->w_redraw_top non-zero, redraw lines between - * wp->w_redraw_top and wp->w_redr_bot. - * - continue redrawing when syntax status is invalid. - * 4. if scrolled up, update lines at the bottom. + * NOT_VALID redraw the whole window + * SOME_VALID redraw the whole window but do scroll when possible + * REDRAW_TOP redraw the top w_upd_rows window lines, otherwise like VALID + * INVERTED redraw the changed part of the Visual area + * INVERTED_ALL redraw the whole Visual area + * VALID 1. scroll up/down to adjust for a changed w_topline + * 2. update lines at the top when scrolled down + * 3. redraw changed text: + * - if wp->w_buffer->b_mod_set set, update lines between + * b_mod_top and b_mod_bot. + * - if wp->w_redraw_top non-zero, redraw lines between + * wp->w_redraw_top and wp->w_redr_bot. + * - continue redrawing when syntax status is invalid. + * 4. if scrolled up, update lines at the bottom. * This results in three areas that may need updating: - * top: from first row to top_end (when scrolled down) + * top: from first row to top_end (when scrolled down) * mid: from mid_start to mid_end (update inversion or changed text) * bot: from bot_start to last row (when scrolled up) */ @@ -824,10 +829,11 @@ static void win_update(win_T *wp, Providers *providers) * changes. Set mod_bot to the first line after the changes. */ mod_top = wp->w_redraw_top; - if (wp->w_redraw_bot != 0) + if (wp->w_redraw_bot != 0) { mod_bot = wp->w_redraw_bot + 1; - else + } else { mod_bot = 0; + } if (buf->b_mod_set) { if (mod_top == 0 || mod_top > buf->b_mod_top) { mod_top = buf->b_mod_top; @@ -835,12 +841,14 @@ static void win_update(win_T *wp, Providers *providers) * in a pattern match. */ if (syntax_present(wp)) { mod_top -= buf->b_s.b_syn_sync_linebreaks; - if (mod_top < 1) + if (mod_top < 1) { mod_top = 1; + } } } - if (mod_bot == 0 || mod_bot < buf->b_mod_bot) + if (mod_bot == 0 || mod_bot < buf->b_mod_bot) { mod_bot = buf->b_mod_bot; + } // When 'hlsearch' is on and using a multi-line search pattern, a // change in one line may make the Search highlighting in a @@ -879,10 +887,11 @@ static void win_update(win_T *wp, Providers *providers) * to this line. If there is no valid entry, use MAXLNUM. */ lnumt = wp->w_topline; lnumb = MAXLNUM; - for (i = 0; i < wp->w_lines_valid; ++i) + for (i = 0; i < wp->w_lines_valid; ++i) { if (wp->w_lines[i].wl_valid) { - if (wp->w_lines[i].wl_lastlnum < mod_top) + if (wp->w_lines[i].wl_lastlnum < mod_top) { lnumt = wp->w_lines[i].wl_lastlnum + 1; + } if (lnumb == MAXLNUM && wp->w_lines[i].wl_lnum >= mod_bot) { lnumb = wp->w_lines[i].wl_lnum; // When there is a fold column it might need updating @@ -892,6 +901,7 @@ static void win_update(win_T *wp, Providers *providers) } } } + } (void)hasFoldingWin(wp, mod_top, &mod_top, NULL, true, NULL); if (mod_top > lnumt) { @@ -912,16 +922,18 @@ static void win_update(win_T *wp, Providers *providers) * If the end of the change is above w_topline: do like no change was * made, but redraw the first line to find changes in syntax. */ if (mod_top != 0 && mod_top < wp->w_topline) { - if (mod_bot > wp->w_topline) + if (mod_bot > wp->w_topline) { mod_top = wp->w_topline; - else if (syntax_present(wp)) + } else if (syntax_present(wp)) { top_end = 1; + } } /* When line numbers are displayed need to redraw all lines below * inserted/deleted lines. */ - if (mod_top != 0 && buf->b_mod_xlines != 0 && wp->w_p_nu) + if (mod_top != 0 && buf->b_mod_xlines != 0 && wp->w_p_nu) { mod_bot = MAXLNUM; + } } wp->w_redraw_top = 0; // reset for next time wp->w_redraw_bot = 0; @@ -939,12 +951,13 @@ static void win_update(win_T *wp, Providers *providers) break; } } - if (top_end == 0) + if (top_end == 0) { /* not found (cannot happen?): redraw everything */ type = NOT_VALID; - else + } else { /* top area defined, the rest is VALID */ type = VALID; + } } /* @@ -957,8 +970,7 @@ static void win_update(win_T *wp, Providers *providers) */ if ((type == VALID || type == SOME_VALID || type == INVERTED || type == INVERTED_ALL) - && !wp->w_botfill && !wp->w_old_botfill - ) { + && !wp->w_botfill && !wp->w_old_botfill) { if (mod_top != 0 && wp->w_topline == mod_top && (!wp->w_lines[0].wl_valid @@ -986,14 +998,16 @@ static void win_update(win_T *wp, Providers *providers) } (void)hasFoldingWin(wp, ln, NULL, &ln, true, NULL); } - } else + } else { j = wp->w_lines[0].wl_lnum - wp->w_topline; + } if (j < wp->w_grid.Rows - 2) { // not too far off i = plines_m_win(wp, wp->w_topline, wp->w_lines[0].wl_lnum - 1); /* insert extra lines for previously invisible filler lines */ - if (wp->w_lines[0].wl_lnum != wp->w_topline) + if (wp->w_lines[0].wl_lnum != wp->w_topline) { i += diff_check_fill(wp, wp->w_lines[0].wl_lnum) - wp->w_old_topfill; + } if (i != 0 && i < wp->w_grid.Rows - 2) { // less than a screen off // Try to insert the correct number of lines. // If not the last window, delete the lines at the bottom. @@ -1052,10 +1066,11 @@ static void win_update(win_T *wp, Providers *providers) */ /* If the topline didn't change, delete old filler lines, * otherwise delete filler lines of the new topline... */ - if (wp->w_lines[0].wl_lnum == wp->w_topline) + if (wp->w_lines[0].wl_lnum == wp->w_topline) { row += wp->w_old_topfill; - else + } else { row += diff_check_fill(wp, wp->w_topline); + } /* ... but don't delete new filler lines. */ row -= wp->w_topfill; if (row > 0) { @@ -1065,7 +1080,7 @@ static void win_update(win_T *wp, Providers *providers) if ((row == 0 || bot_start < 999) && wp->w_lines_valid != 0) { /* * Skip the lines (below the deleted lines) that are still - * valid and don't need redrawing. Copy their info + * valid and don't need redrawing. Copy their info * upwards, to compensate for the deleted lines. Set * bot_start to the first row that needs redrawing. */ @@ -1090,10 +1105,11 @@ static void win_update(win_T *wp, Providers *providers) } /* Correct the first entry for filler lines at the top * when it won't get updated below. */ - if (wp->w_p_diff && bot_start > 0) + if (wp->w_p_diff && bot_start > 0) { wp->w_lines[0].wl_size = plines_win_nofill(wp, wp->w_topline, true) + wp->w_topfill; + } } } } @@ -1133,14 +1149,18 @@ static void win_update(win_T *wp, Providers *providers) to = curwin->w_cursor.lnum; } /* redraw more when the cursor moved as well */ - if (wp->w_old_cursor_lnum < from) + if (wp->w_old_cursor_lnum < from) { from = wp->w_old_cursor_lnum; - if (wp->w_old_cursor_lnum > to) + } + if (wp->w_old_cursor_lnum > to) { to = wp->w_old_cursor_lnum; - if (wp->w_old_visual_lnum < from) + } + if (wp->w_old_visual_lnum < from) { from = wp->w_old_visual_lnum; - if (wp->w_old_visual_lnum > to) + } + if (wp->w_old_visual_lnum > to) { to = wp->w_old_visual_lnum; + } } else { /* * Find the line numbers that need to be updated: The lines @@ -1153,21 +1173,26 @@ static void win_update(win_T *wp, Providers *providers) } else { from = wp->w_old_cursor_lnum; to = curwin->w_cursor.lnum; - if (from == 0) /* Visual mode just started */ + if (from == 0) { /* Visual mode just started */ from = to; + } } if (VIsual.lnum != wp->w_old_visual_lnum || VIsual.col != wp->w_old_visual_col) { if (wp->w_old_visual_lnum < from - && wp->w_old_visual_lnum != 0) + && wp->w_old_visual_lnum != 0) { from = wp->w_old_visual_lnum; - if (wp->w_old_visual_lnum > to) + } + if (wp->w_old_visual_lnum > to) { to = wp->w_old_visual_lnum; - if (VIsual.lnum < from) + } + if (VIsual.lnum < from) { from = VIsual.lnum; - if (VIsual.lnum > to) + } + if (VIsual.lnum > to) { to = VIsual.lnum; + } } } @@ -1180,8 +1205,9 @@ static void win_update(win_T *wp, Providers *providers) colnr_T fromc, toc; int save_ve_flags = ve_flags; - if (curwin->w_p_lbr) + if (curwin->w_p_lbr) { ve_flags = VE_ALL; + } getvcols(wp, &VIsual, &curwin->w_cursor, &fromc, &toc); ve_flags = save_ve_flags; @@ -1194,10 +1220,12 @@ static void win_update(win_T *wp, Providers *providers) if (fromc != wp->w_old_cursor_fcol || toc != wp->w_old_cursor_lcol) { - if (from > VIsual.lnum) + if (from > VIsual.lnum) { from = VIsual.lnum; - if (to < VIsual.lnum) + } + if (to < VIsual.lnum) { to = VIsual.lnum; + } } wp->w_old_cursor_fcol = fromc; wp->w_old_cursor_lcol = toc; @@ -1216,18 +1244,21 @@ static void win_update(win_T *wp, Providers *providers) /* * There is no need to update lines above the top of the window. */ - if (from < wp->w_topline) + if (from < wp->w_topline) { from = wp->w_topline; + } /* * If we know the value of w_botline, use it to restrict the update to * the lines that are visible in the window. */ if (wp->w_valid & VALID_BOTLINE) { - if (from >= wp->w_botline) + if (from >= wp->w_botline) { from = wp->w_botline - 1; - if (to >= wp->w_botline) + } + if (to >= wp->w_botline) { to = wp->w_botline - 1; + } } /* @@ -1243,20 +1274,23 @@ static void win_update(win_T *wp, Providers *providers) lnum = wp->w_topline; idx = 0; srow = 0; - if (scrolled_down) + if (scrolled_down) { mid_start = top_end; - else + } else { mid_start = 0; + } while (lnum < from && idx < wp->w_lines_valid) { /* find start */ - if (wp->w_lines[idx].wl_valid) + if (wp->w_lines[idx].wl_valid) { mid_start += wp->w_lines[idx].wl_size; - else if (!scrolled_down) + } else if (!scrolled_down) { srow += wp->w_lines[idx].wl_size; + } ++idx; - if (idx < wp->w_lines_valid && wp->w_lines[idx].wl_valid) + if (idx < wp->w_lines_valid && wp->w_lines[idx].wl_valid) { lnum = wp->w_lines[idx].wl_lnum; - else + } else { ++lnum; + } } srow += mid_start; mid_end = wp->w_grid.Rows; @@ -1400,8 +1434,9 @@ static void win_update(win_T *wp, Providers *providers) /* Only valid lines have a meaningful wl_lnum. Invalid * lines are part of the changed area. */ if (wp->w_lines[i].wl_valid - && wp->w_lines[i].wl_lnum == mod_bot) + && wp->w_lines[i].wl_lnum == mod_bot) { break; + } old_rows += wp->w_lines[i].wl_size; if (wp->w_lines[i].wl_valid && wp->w_lines[i].wl_lastlnum + 1 == mod_bot) { @@ -1409,8 +1444,9 @@ static void win_update(win_T *wp, Providers *providers) * Add following invalid entries. */ ++i; while (i < wp->w_lines_valid - && !wp->w_lines[i].wl_valid) + && !wp->w_lines[i].wl_valid) { old_rows += wp->w_lines[i++].wl_size; + } break; } } @@ -1490,10 +1526,11 @@ static void win_update(win_T *wp, Providers *providers) x += wp->w_lines[j++].wl_size; ++i; } - if (bot_start > x) + if (bot_start > x) { bot_start = x; + } } else { /* j > i */ - /* move entries in w_lines[] downwards */ + /* move entries in w_lines[] downwards */ j -= i; wp->w_lines_valid += j; if (wp->w_lines_valid > wp->w_grid.Rows) { @@ -1529,8 +1566,7 @@ static void win_update(win_T *wp, Providers *providers) && lnum > wp->w_topline && !(dy_flags & (DY_LASTLINE | DY_TRUNCATE)) && srow + wp->w_lines[idx].wl_size > wp->w_grid.Rows - && diff_check_fill(wp, lnum) == 0 - ) { + && diff_check_fill(wp, lnum) == 0) { // This line is not going to fit. Don't draw anything here, // will draw "@ " lines below. row = wp->w_grid.Rows + 1; @@ -1538,8 +1574,9 @@ static void win_update(win_T *wp, Providers *providers) prepare_search_hl(wp, lnum); /* Let the syntax stuff know we skipped a few lines. */ if (syntax_last_parsed != 0 && syntax_last_parsed + 1 < lnum - && syntax_present(wp)) + && syntax_present(wp)) { syntax_end_parsing(syntax_last_parsed + 1); + } // Display one line row = win_line(wp, lnum, srow, @@ -1603,14 +1640,16 @@ static void win_update(win_T *wp, Providers *providers) */ - if (idx > wp->w_lines_valid) + if (idx > wp->w_lines_valid) { wp->w_lines_valid = idx; + } /* * Let the syntax stuff know we stop parsing here. */ - if (syntax_last_parsed != 0 && syntax_present(wp)) + if (syntax_last_parsed != 0 && syntax_present(wp)) { syntax_end_parsing(syntax_last_parsed + 1); + } /* * If we didn't hit the end of the file, and we didn't finish the last @@ -1668,8 +1707,9 @@ static void win_update(win_T *wp, Providers *providers) win_draw_end(wp, i, i, true, row, row + (int)j, HLF_DED); row += j; } - } else if (dollar_vcol == -1) + } else if (dollar_vcol == -1) { wp->w_botline = lnum; + } // make sure the rest of the screen is blank // write the 'eob' character to rows that aren't part of the file. @@ -1755,8 +1795,9 @@ static void win_update(win_T *wp, Providers *providers) /* restore got_int, unless CTRL-C was hit while redrawing */ - if (!got_int) + if (!got_int) { got_int = save_got_int; + } } // NOLINT(readability/fn_size) /// Returns width of the signcolumn that should be used for the whole window @@ -1776,8 +1817,8 @@ int win_signcol_width(win_T *wp) /// Call grid_fill() with columns adjusted for 'rightleft' if needed. /// Return the new offset. -static int win_fill_end(win_T *wp, int c1, int c2, int off, int width, int row, - int endrow, int attr) +static int win_fill_end(win_T *wp, int c1, int c2, int off, int width, int row, int endrow, + int attr) { int nn = off + width; @@ -1798,8 +1839,7 @@ static int win_fill_end(win_T *wp, int c1, int c2, int off, int width, int row, /// Clear lines near the end of the window and mark the unused lines with "c1". /// Use "c2" as filler character. /// When "draw_margin" is true, then draw the sign/fold/number columns. -static void win_draw_end(win_T *wp, int c1, int c2, bool draw_margin, int row, - int endrow, hlf_T hl) +static void win_draw_end(win_T *wp, int c1, int c2, bool draw_margin, int row, int endrow, hlf_T hl) { assert(hl >= 0 && hl < HLF_COUNT); int n = 0; @@ -1844,8 +1884,9 @@ static void win_draw_end(win_T *wp, int c1, int c2, bool draw_margin, int row, /// @return true when there are columns to draw. static bool advance_color_col(int vcol, int **color_cols) { - while (**color_cols >= 0 && vcol > **color_cols) + while (**color_cols >= 0 && vcol > **color_cols) { ++*color_cols; + } return **color_cols >= 0; } @@ -1923,13 +1964,7 @@ static int line_putchar(LineState *s, schar_T *dest, int maxcells, bool rl) /// /// Assume monocell characters /// @return number of chars added to \param p -static size_t -fill_foldcolumn( - char_u *p, - win_T *wp, - foldinfo_T foldinfo, - linenr_T lnum -) +static size_t fill_foldcolumn(char_u *p, win_T *wp, foldinfo_T foldinfo, linenr_T lnum) { int i = 0; int level; @@ -1998,9 +2033,8 @@ fill_foldcolumn( /// or explicitly return `false`. /// /// @return the number of last row the line occupies. -static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, - bool nochange, bool number_only, foldinfo_T foldinfo, - Providers *providers) +static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange, + bool number_only, foldinfo_T foldinfo, Providers *providers) { int c = 0; // init for GCC long vcol = 0; // virtual column (for tabs) @@ -2155,8 +2189,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, boguscols = 0; \ } - if (startrow > endrow) /* past the end already! */ + if (startrow > endrow) { /* past the end already! */ return startrow; + } row = startrow; @@ -2327,7 +2362,7 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, area_highlighting = true; attr = win_hl_attr(wp, HLF_V); } - // handle 'incsearch' and ":s///c" highlighting + // handle 'incsearch' and ":s///c" highlighting } else if (highlight_match && wp == curwin && !has_fold @@ -2356,19 +2391,22 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, filler_lines = diff_check(wp, lnum); if (filler_lines < 0) { if (filler_lines == -1) { - if (diff_find_change(wp, lnum, &change_start, &change_end)) + if (diff_find_change(wp, lnum, &change_start, &change_end)) { diff_hlf = HLF_ADD; /* added line */ - else if (change_start == 0) + } else if (change_start == 0) { diff_hlf = HLF_TXD; /* changed text */ - else + } else { diff_hlf = HLF_CHD; /* changed line */ - } else + } + } else { diff_hlf = HLF_ADD; /* added line */ + } filler_lines = 0; area_highlighting = TRUE; } - if (lnum == wp->w_topline) + if (lnum == wp->w_topline) { filler_lines = wp->w_topfill; + } filler_todo = filler_lines; // Cursor line highlighting for 'cursorline' in the current window. @@ -2475,7 +2513,7 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, while (trailcol > (colnr_T)0 && ascii_iswhite(ptr[trailcol - 1])) { trailcol--; } - trailcol += (colnr_T) (ptr - line); + trailcol += (colnr_T)(ptr - line); } // find end of leading whitespace if (wp->w_p_lcs_chars.lead) { @@ -2497,10 +2535,11 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, * 'nowrap' or 'wrap' and a single line that doesn't fit: Advance to the * first character to be displayed. */ - if (wp->w_p_wrap) + if (wp->w_p_wrap) { v = wp->w_skipcol; - else + } else { v = wp->w_leftcol; + } if (v > 0 && !number_only) { char_u *prev_ptr = ptr; while (vcol < v && *ptr != NUL) { @@ -2539,10 +2578,11 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, * Adjust for when the inverted text is before the screen, * and when the start of the inverted text is before the screen. */ - if (tocol <= vcol) + if (tocol <= vcol) { fromcol = 0; - else if (fromcol >= 0 && fromcol < vcol) + } else if (fromcol >= 0 && fromcol < vcol) { fromcol = vcol; + } // When w_skipcol is non-zero, first line needs 'showbreak' if (wp->w_p_wrap) { @@ -2575,8 +2615,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, word_end = wp->w_cursor.col + (int)len + 1; /* Turn index into actual attributes. */ - if (spell_hlf != HLF_COUNT) + if (spell_hlf != HLF_COUNT) { spell_attr = highlight_attr[spell_hlf]; + } } wp->w_cursor = pos; @@ -2598,12 +2639,14 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, * cursor */ fromcol_prev = fromcol; fromcol = -1; - } else if ((colnr_T)fromcol < wp->w_virtcol) + } else if ((colnr_T)fromcol < wp->w_virtcol) { /* restart highlighting after the cursor */ fromcol_prev = wp->w_virtcol; + } } - if (fromcol >= tocol) + if (fromcol >= tocol) { fromcol = -1; + } } /* @@ -2613,8 +2656,7 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, cur = wp->w_match_head; shl_flag = false; while ((cur != NULL || !shl_flag) && !number_only - && !has_fold - ) { + && !has_fold) { if (!shl_flag) { shl = &search_hl; shl_flag = true; @@ -2647,18 +2689,18 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, shl->startcol = 0; } if (lnum == shl->lnum + shl->rm.endpos[0].lnum - - shl->rm.startpos[0].lnum) { - shl->endcol = shl->rm.endpos[0].col; + - shl->rm.startpos[0].lnum) { + shl->endcol = shl->rm.endpos[0].col; } else { - shl->endcol = MAXCOL; + shl->endcol = MAXCOL; } // Highlight one character for an empty match. if (shl->startcol == shl->endcol) { - if (line[shl->endcol] != NUL) { - shl->endcol += (*mb_ptr2len)(line + shl->endcol); - } else { - ++shl->endcol; - } + if (line[shl->endcol] != NUL) { + shl->endcol += (*mb_ptr2len)(line + shl->endcol); + } else { + ++shl->endcol; + } } if ((long)shl->startcol < v) { // match at leftcol shl->attr_cur = shl->attr; @@ -2667,8 +2709,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, } area_highlighting = true; } - if (shl != &search_hl && cur != NULL) + if (shl != &search_hl && cur != NULL) { cur = cur->next; + } } unsigned off = 0; // Offset relative start of line @@ -2733,18 +2776,17 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, // sign column, this is hit until sign_idx reaches count if (draw_state == WL_SIGN - 1 && n_extra == 0) { - draw_state = WL_SIGN; - /* Show the sign column when there are any signs in this - * buffer or when using Netbeans. */ - int count = win_signcol_count(wp); - if (count > 0) { - get_sign_display_info( - false, wp, sattrs, row, - startrow, filler_lines, filler_todo, count, - &c_extra, &c_final, extra, sizeof(extra), - &p_extra, &n_extra, - &char_attr, &draw_state, &sign_idx); - } + draw_state = WL_SIGN; + /* Show the sign column when there are any signs in this + * buffer or when using Netbeans. */ + int count = win_signcol_count(wp); + if (count > 0) { + get_sign_display_info(false, wp, sattrs, row, + startrow, filler_lines, filler_todo, count, + &c_extra, &c_final, extra, sizeof(extra), + &p_extra, &n_extra, + &char_attr, &draw_state, &sign_idx); + } } if (draw_state == WL_NR - 1 && n_extra == 0) { @@ -2760,12 +2802,11 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, if (*wp->w_p_scl == 'n' && *(wp->w_p_scl + 1) == 'u' && num_signs > 0) { int count = win_signcol_count(wp); - get_sign_display_info( - true, wp, sattrs, row, - startrow, filler_lines, filler_todo, count, - &c_extra, &c_final, extra, sizeof(extra), - &p_extra, &n_extra, - &char_attr, &draw_state, &sign_idx); + get_sign_display_info(true, wp, sattrs, row, + startrow, filler_lines, filler_todo, count, + &c_extra, &c_final, extra, sizeof(extra), + &p_extra, &n_extra, + &char_attr, &draw_state, &sign_idx); } else { if (row == startrow + filler_lines) { // Draw the line number (empty space after wrapping). */ @@ -2920,8 +2961,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, vcol_sbr = vcol + MB_CHARLEN(p_sbr); /* Correct end of highlighted area for 'showbreak', * required when 'linebreak' is also set. */ - if (tocol == vcol) + if (tocol == vcol) { tocol += n_extra; + } // Combine 'showbreak' with 'cursorline', prioritizing 'showbreak'. if (cul_attr) { char_attr = hl_combine_attr(cul_attr, char_attr); @@ -2993,20 +3035,20 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, && vcol == 0 && n_extra == 0 && row == startrow) { - char_attr = win_hl_attr(wp, HLF_FL); + char_attr = win_hl_attr(wp, HLF_FL); - linenr_T lnume = lnum + foldinfo.fi_lines - 1; - memset(buf_fold, ' ', FOLD_TEXT_LEN); - p_extra = get_foldtext(wp, lnum, lnume, foldinfo, buf_fold); - n_extra = STRLEN(p_extra); + linenr_T lnume = lnum + foldinfo.fi_lines - 1; + memset(buf_fold, ' ', FOLD_TEXT_LEN); + p_extra = get_foldtext(wp, lnum, lnume, foldinfo, buf_fold); + n_extra = STRLEN(p_extra); - if (p_extra != buf_fold) { - xfree(p_extra_free); - p_extra_free = p_extra; - } - c_extra = NUL; - c_final = NUL; - p_extra[n_extra] = NUL; + if (p_extra != buf_fold) { + xfree(p_extra_free); + p_extra_free = p_extra; + } + c_extra = NUL; + c_final = NUL; + p_extra[n_extra] = NUL; } if (draw_state == WL_LINE @@ -3047,7 +3089,7 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, && (colnr_T)vcol == wp->w_virtcol))) { area_attr = 0; // stop highlighting area_active = false; - } + } if (!n_extra) { /* @@ -3072,10 +3114,10 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, if (cur != NULL) { cur->pos.cur = 0; } - bool pos_inprogress = true; // mark that a position match search is - // in progress + bool pos_inprogress = true; // mark that a position match search is + // in progress while (shl->rm.regprog != NULL - || (cur != NULL && pos_inprogress)) { + || (cur != NULL && pos_inprogress)) { if (shl->startcol != MAXCOL && v >= (long)shl->startcol && v < (long)shl->endcol) { @@ -3109,10 +3151,11 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, if (shl->lnum == lnum) { shl->startcol = shl->rm.startpos[0].col; - if (shl->rm.endpos[0].lnum == 0) + if (shl->rm.endpos[0].lnum == 0) { shl->endcol = shl->rm.endpos[0].col; - else + } else { shl->endcol = MAXCOL; + } if (shl->startcol == shl->endcol) { // highlight empty match, try again after it @@ -3126,8 +3169,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, } break; } - if (shl != &search_hl && cur != NULL) + if (shl != &search_hl && cur != NULL) { cur = cur->next; + } } /* Use attributes from match with highest priority among @@ -3148,8 +3192,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, search_attr = shl->attr_cur; search_attr_from_match = shl != &search_hl; } - if (shl != &search_hl && cur != NULL) + if (shl != &search_hl && cur != NULL) { cur = cur->next; + } } // Only highlight one character after the last column. if (*ptr == NUL @@ -3412,8 +3457,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, if (did_emsg) { wp->w_s->b_syn_error = TRUE; has_syntax = FALSE; - } else + } else { did_emsg = save_did_emsg; + } // Need to get the line again, a multi-line regexp may // have made it invalid. @@ -3494,8 +3540,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, } /* Turn index into actual attributes. */ - if (spell_hlf != HLF_COUNT) + if (spell_hlf != HLF_COUNT) { spell_attr = highlight_attr[spell_hlf]; + } if (cap_col > 0) { if (p != prev_ptr @@ -3505,17 +3552,19 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, capcol_lnum = lnum + 1; cap_col = (int)((p - nextline) + cap_col - nextline_idx); - } else + } else { /* Compute the actual column. */ cap_col += (int)(prev_ptr - line); + } } } } if (spell_attr != 0) { - if (!attr_pri) + if (!attr_pri) { char_attr = hl_combine_attr(char_attr, spell_attr); - else + } else { char_attr = hl_combine_attr(spell_attr, char_attr); + } } if (wp->w_buffer->terminal) { @@ -3550,9 +3599,10 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, c_extra = mb_off > 0 ? MB_FILLER_CHAR : ' '; c_final = NUL; if (ascii_iswhite(c)) { - if (c == TAB) + if (c == TAB) { /* See "Tab alignment" below. */ FIX_FOR_BOGUSCOLS; + } if (!wp->w_p_list) { c = ' '; } @@ -3699,7 +3749,7 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, ? wp->w_p_lcs_chars.tab3 : wp->w_p_lcs_chars.tab1; if (wp->w_p_lbr) { - c_extra = NUL; /* using p_extra from above */ + c_extra = NUL; /* using p_extra from above */ } else { c_extra = wp->w_p_lcs_chars.tab2; } @@ -3765,10 +3815,11 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, } else if (c != NUL) { p_extra = transchar_buf(wp->w_buffer, c); if (n_extra == 0) { - n_extra = byte2cells(c) - 1; + n_extra = byte2cells(c) - 1; } - if ((dy_flags & DY_UHEX) && wp->w_p_rl) + if ((dy_flags & DY_UHEX) && wp->w_p_rl) { rl_mirror(p_extra); /* reverse "<12>" */ + } c_extra = NUL; c_final = NUL; if (wp->w_p_lbr) { @@ -3826,8 +3877,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, prev_syntax_id = syntax_seqnr; - if (n_extra > 0) + if (n_extra > 0) { vcol_off += n_extra; + } vcol += n_extra; if (wp->w_p_wrap && n_extra > 0) { if (wp->w_p_rl) { @@ -3953,8 +4005,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, int n = 0; if (wp->w_p_rl) { - if (col < 0) + if (col < 0) { n = 1; + } } else { if (col >= grid->Columns) { n = -1; @@ -4016,15 +4069,17 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, } /* check if line ends before left margin */ - if (vcol < v + col - win_col_off(wp)) + if (vcol < v + col - win_col_off(wp)) { vcol = v + col - win_col_off(wp); + } // Get rid of the boguscols now, we want to draw until the right // edge for 'cursorcolumn'. col -= boguscols; // boguscols = 0; // Disabled because value never read after this - if (draw_color_col) + if (draw_color_col) { draw_color_col = advance_color_col(VCOL_HLC, &color_cols); + } bool has_virttext = false; // Make sure alignment is the same regardless @@ -4250,8 +4305,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, } else if (wp->w_p_cole > 0 && is_concealing) { --n_skip; ++vcol_off; - if (n_extra > 0) + if (n_extra > 0) { vcol_off += n_extra; + } if (wp->w_p_wrap) { /* * Special voodoo required if 'wrap' is on. @@ -4305,27 +4361,30 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, n_attr = 0; } } - - } else + } else { --n_skip; + } /* Only advance the "vcol" when after the 'number' or 'relativenumber' * column. */ if (draw_state > WL_NR - && filler_todo <= 0 - ) + && filler_todo <= 0) { ++vcol; + } - if (vcol_save_attr >= 0) + if (vcol_save_attr >= 0) { char_attr = vcol_save_attr; + } /* restore attributes after "predeces" in 'listchars' */ - if (draw_state > WL_NR && n_attr3 > 0 && --n_attr3 == 0) + if (draw_state > WL_NR && n_attr3 > 0 && --n_attr3 == 0) { char_attr = saved_attr3; + } /* restore attributes after last 'listchars' or 'number' char */ - if (n_attr > 0 && draw_state == WL_LINE && --n_attr == 0) + if (n_attr > 0 && draw_state == WL_LINE && --n_attr == 0) { char_attr = saved_attr2; + } /* * At end of screen line and there is more to come: Display the line @@ -4337,15 +4396,15 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, || filler_todo > 0 || (wp->w_p_list && wp->w_p_lcs_chars.eol != NUL && p_extra != at_end_str) - || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL))) - ) { + || (n_extra != 0 && + (c_extra != NUL || *p_extra != NUL)))) { bool wrap = wp->w_p_wrap // Wrapping enabled. - && filler_todo <= 0 // Not drawing diff filler lines. - && lcs_eol_one != -1 // Haven't printed the lcs_eol character. - && row != endrow - 1 // Not the last line being displayed. - && (grid->Columns == Columns // Window spans the width of the screen, - || ui_has(kUIMultigrid)) // or has dedicated grid. - && !wp->w_p_rl; // Not right-to-left. + && filler_todo <= 0 // Not drawing diff filler lines. + && lcs_eol_one != -1 // Haven't printed the lcs_eol character. + && row != endrow - 1 // Not the last line being displayed. + && (grid->Columns == Columns // Window spans the width of the screen, + || ui_has(kUIMultigrid)) // or has dedicated grid. + && !wp->w_p_rl; // Not right-to-left. int draw_col = col - boguscols; draw_virt_text(buf, win_col_offset, &draw_col, grid->Columns); @@ -4370,8 +4429,9 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, * '$' and highlighting until last column, break here. */ if ((!wp->w_p_wrap && filler_todo <= 0 - ) || lcs_eol_one == -1) + ) || lcs_eol_one == -1) { break; + } // When the window is too narrow draw all "@" lines. if (draw_state != WL_LINE && filler_todo <= 0) { @@ -4411,7 +4471,6 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, break; } } - } /* for every character in the line */ /* After an empty line check first word for capital. */ @@ -4520,25 +4579,11 @@ void screen_adjust_grid(ScreenGrid **grid, int *row_off, int *col_off) // @param count max number of signs // @param[out] n_extrap number of characters from pp_extra to display // @param[in, out] sign_idxp Index of the displayed sign -static void get_sign_display_info( - bool nrcol, - win_T *wp, - sign_attrs_T sattrs[], - int row, - int startrow, - int filler_lines, - int filler_todo, - int count, - int *c_extrap, - int *c_finalp, - char_u *extra, - size_t extra_size, - char_u **pp_extra, - int *n_extrap, - int *char_attrp, - int *draw_statep, - int *sign_idxp -) +static void get_sign_display_info(bool nrcol, win_T *wp, sign_attrs_T sattrs[], int row, + int startrow, int filler_lines, int filler_todo, int count, + int *c_extrap, int *c_finalp, char_u *extra, size_t extra_size, + char_u **pp_extra, int *n_extrap, int *char_attrp, + int *draw_statep, int *sign_idxp) { // Draw cells with the sign value or blank. *c_extrap = ' '; @@ -4576,7 +4621,7 @@ static void get_sign_display_info( assert((size_t)win_signcol_width(wp) >= mb_string2cells(*pp_extra)); // symbol(s) bytes + (filling spaces) (one byte each) *n_extrap = symbol_blen + - (win_signcol_width(wp) - mb_string2cells(*pp_extra)); + (win_signcol_width(wp) - mb_string2cells(*pp_extra)); assert(extra_size > (size_t)symbol_blen); memset(extra, ' ', extra_size); @@ -4606,8 +4651,7 @@ static void get_sign_display_info( * - the character is multi-byte and the next byte is different * - the character is two cells wide and the second cell differs. */ -static int grid_char_needs_redraw(ScreenGrid *grid, int off_from, int off_to, - int cols) +static int grid_char_needs_redraw(ScreenGrid *grid, int off_from, int off_to, int cols) { return (cols > 0 && ((schar_cmp(linebuf_char[off_from], grid->chars[off_to]) @@ -4629,9 +4673,8 @@ static int grid_char_needs_redraw(ScreenGrid *grid, int off_from, int off_to, /// When FALSE and "clear_width" > 0, clear columns "endcol" to "clear_width" /// If "wrap" is true, then hint to the UI that "row" contains a line /// which has wrapped into the next row. -static void grid_put_linebuf(ScreenGrid *grid, int row, int coloff, int endcol, - int clear_width, int rlflag, win_T *wp, - int bg_attr, bool wrap) +static void grid_put_linebuf(ScreenGrid *grid, int row, int coloff, int endcol, int clear_width, + int rlflag, win_T *wp, int bg_attr, bool wrap) { unsigned off_from; unsigned off_to; @@ -4672,8 +4715,7 @@ static void grid_put_linebuf(ScreenGrid *grid, int row, int coloff, int endcol, if (clear_width > 0) { while (col <= endcol && grid->chars[off_to][0] == ' ' && grid->chars[off_to][1] == NUL - && grid->attrs[off_to] == bg_attr - ) { + && grid->attrs[off_to] == bg_attr) { ++off_to; ++col; } @@ -4814,7 +4856,6 @@ void rl_mirror(char_u *str) */ void status_redraw_all(void) { - FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { if (wp->w_status_height) { wp->w_redr_status = true; @@ -4850,8 +4891,9 @@ void redraw_statuslines(void) win_redr_status(wp); } } - if (redraw_tabline) + if (redraw_tabline) { draw_tabline(); + } } /* @@ -4904,8 +4946,9 @@ static int status_match_len(expand_T *xp, char_u *s) || xp->xp_context == EXPAND_MENUNAMES); /* Check for menu separators - replace with '|'. */ - if (emenu && menu_is_separator(s)) + if (emenu && menu_is_separator(s)) { return 1; + } while (*s != NUL) { s += skip_status_match_char(xp, s); @@ -4925,11 +4968,12 @@ static int skip_status_match_char(expand_T *xp, char_u *s) if ((rem_backslash(s) && xp->xp_context != EXPAND_HELP) || ((xp->xp_context == EXPAND_MENUS || xp->xp_context == EXPAND_MENUNAMES) - && (s[0] == '\t' || (s[0] == '\\' && s[1] != NUL))) - ) { + && (s[0] == '\t' || + (s[0] == '\\' && s[1] != NUL)))) { #ifndef BACKSLASH_IN_FILENAME - if (xp->xp_shell && csh_like_shell() && s[1] == '\\' && s[2] == '!') + if (xp->xp_shell && csh_like_shell() && s[1] == '\\' && s[2] == '!') { return 2; + } #endif return 1; } @@ -4943,14 +4987,8 @@ static int skip_status_match_char(expand_T *xp, char_u *s) * * If inversion is possible we use it. Else '=' characters are used. */ -void -win_redr_status_matches ( - expand_T *xp, - int num_matches, - char_u **matches, /* list of matches */ - int match, - int showtail -) +void win_redr_status_matches(expand_T *xp, int num_matches, char_u **matches, /* list of matches */ + int match, int showtail) { #define L_MATCH(m) (showtail ? sm_gettail(matches[m], false) : matches[m]) int row; @@ -4970,8 +5008,9 @@ win_redr_status_matches ( int emenu; int l; - if (matches == NULL) /* interrupted completion? */ + if (matches == NULL) { /* interrupted completion? */ return; + } buf = xmalloc(Columns * MB_MAXBYTES + 1); @@ -4981,18 +5020,20 @@ win_redr_status_matches ( } /* count 1 for the ending ">" */ clen = status_match_len(xp, L_MATCH(match)) + 3; - if (match == 0) + if (match == 0) { first_match = 0; - else if (match < first_match) { + } else if (match < first_match) { /* jumping left, as far as we can go */ first_match = match; add_left = true; } else { /* check if match fits on the screen */ - for (i = first_match; i < match; ++i) + for (i = first_match; i < match; ++i) { clen += status_match_len(xp, L_MATCH(i)) + 2; - if (first_match > 0) + } + if (first_match > 0) { clen += 2; + } // jumping right, put match at the left if ((long)clen > Columns) { first_match = match; @@ -5009,7 +5050,7 @@ win_redr_status_matches ( } } } - if (add_left) + if (add_left) { while (first_match > 0) { clen += status_match_len(xp, L_MATCH(first_match - 1)) + 2; if ((long)clen >= Columns) { @@ -5017,6 +5058,7 @@ win_redr_status_matches ( } first_match--; } + } fillchar = fillchar_status(&attr, curwin); @@ -5045,7 +5087,7 @@ win_redr_status_matches ( l = (int)STRLEN(buf + len); len += l; clen += l; - } else + } else { for (; *s != NUL; ++s) { s += skip_status_match_char(xp, s); clen += ptr2cells(s); @@ -5058,14 +5100,17 @@ win_redr_status_matches ( len += (int)STRLEN(buf + len); } } - if (i == match) + } + if (i == match) { selend = buf + len; + } *(buf + len++) = ' '; *(buf + len++) = ' '; clen += 2; - if (++i == num_matches) + if (++i == num_matches) { break; + } } if (i != num_matches) { @@ -5219,9 +5264,10 @@ static void win_redr_status(win_T *wp) this_ru_col + wp->w_wincol, fillchar, fillchar, attr); if (get_keymap_str(wp, (char_u *)"<%s>", NameBuff, MAXPATHL) - && this_ru_col - len > (int)(STRLEN(NameBuff) + 1)) + && this_ru_col - len > (int)(STRLEN(NameBuff) + 1)) { grid_puts(&default_grid, NameBuff, row, (int)(this_ru_col - STRLEN(NameBuff) - 1), attr); + } win_redr_ruler(wp, true); } @@ -5251,8 +5297,9 @@ static void redraw_custom_statusline(win_T *wp) /* When called recursively return. This can happen when the statusline * contains an expression that triggers a redraw. */ - if (entered) + if (entered) { return; + } entered = true; did_emsg = false; @@ -5280,8 +5327,9 @@ bool stl_connected(win_T *wp) fr = wp->w_frame; while (fr->fr_parent != NULL) { if (fr->fr_parent->fr_layout == FR_COL) { - if (fr->fr_next != NULL) + if (fr->fr_next != NULL) { break; + } } else { if (fr->fr_next != NULL) { return true; @@ -5338,11 +5386,7 @@ bool get_keymap_str(win_T *wp, char_u *fmt, char_u *buf, int len) * Redraw the status line or ruler of window "wp". * When "wp" is NULL redraw the tab pages line from 'tabline'. */ -static void -win_redr_custom ( - win_T *wp, - bool draw_ruler -) +static void win_redr_custom(win_T *wp, bool draw_ruler) { static bool entered = false; int attr; @@ -5368,8 +5412,9 @@ win_redr_custom ( /* There is a tiny chance that this gets called recursively: When * redrawing a status line triggers redrawing the ruler or tabline. * Avoid trouble by not allowing recursion. */ - if (entered) + if (entered) { return; + } entered = true; /* setup environment for the task at hand */ @@ -5390,13 +5435,17 @@ win_redr_custom ( stl = p_ruf; /* advance past any leading group spec - implicit in ru_col */ if (*stl == '%') { - if (*++stl == '-') + if (*++stl == '-') { stl++; - if (atoi((char *)stl)) - while (ascii_isdigit(*stl)) + } + if (atoi((char *)stl)) { + while (ascii_isdigit(*stl)) { stl++; - if (*stl++ != '(') + } + } + if (*stl++ != '(') { stl = p_ruf; + } } col = ru_col - (Columns - wp->w_width); if (col < (wp->w_width + 1) / 2) { @@ -5413,19 +5462,21 @@ win_redr_custom ( use_sandbox = was_set_insecurely(wp, (char_u *)"rulerformat", 0); } else { - if (*wp->w_p_stl != NUL) + if (*wp->w_p_stl != NUL) { stl = wp->w_p_stl; - else + } else { stl = p_stl; - use_sandbox = was_set_insecurely( - wp, (char_u *)"statusline", *wp->w_p_stl == NUL ? 0 : OPT_LOCAL); + } + use_sandbox = was_set_insecurely(wp, (char_u *)"statusline", + *wp->w_p_stl == NUL ? 0 : OPT_LOCAL); } col += wp->w_wincol; } - if (maxwidth <= 0) + if (maxwidth <= 0) { goto theend; + } /* Temporarily reset 'cursorbind', we don't want a side effect from moving * the cursor away and back. */ @@ -5468,14 +5519,15 @@ win_redr_custom ( col += vim_strnsize(p, textlen); p = hltab[n].start; - if (hltab[n].userhl == 0) + if (hltab[n].userhl == 0) { curattr = attr; - else if (hltab[n].userhl < 0) + } else if (hltab[n].userhl < 0) { curattr = syn_id2attr(-hltab[n].userhl); - else if (wp != NULL && wp != curwin && wp->w_status_height != 0) + } else if (wp != NULL && wp != curwin && wp->w_status_height != 0) { curattr = highlight_stlnc[hltab[n].userhl - 1]; - else + } else { curattr = highlight_user[hltab[n].userhl - 1]; + } } // Make sure to use an empty string instead of p, if p is beyond buf + len. grid_puts(grid, p >= buf + len ? (char_u *)"" : p, row, col, @@ -5492,11 +5544,11 @@ win_redr_custom ( .type = kStlClickDisabled, }; for (n = 0; tabtab[n].start != NULL; n++) { - len += vim_strnsize(p, (int)(tabtab[n].start - (char *) p)); + len += vim_strnsize(p, (int)(tabtab[n].start - (char *)p)); while (col < len) { tab_page_click_defs[col++] = cur_click_def; } - p = (char_u *) tabtab[n].start; + p = (char_u *)tabtab[n].start; cur_click_def = tabtab[n].def; } while (col < Columns) { @@ -5660,8 +5712,7 @@ void grid_putchar(ScreenGrid *grid, int c, int row, int col, int attr) /// get a single character directly from grid.chars into "bytes[]". /// Also return its attribute in *attrp; -void grid_getbytes(ScreenGrid *grid, int row, int col, char_u *bytes, - int *attrp) +void grid_getbytes(ScreenGrid *grid, int row, int col, char_u *bytes, int *attrp) { unsigned off; @@ -5708,19 +5759,18 @@ void grid_put_schar(ScreenGrid *grid, int row, int col, char_u *schar, int attr) assert(put_dirty_row == row); unsigned int off = grid->line_offset[row] + col; if (grid->attrs[off] != attr || schar_cmp(grid->chars[off], schar)) { - schar_copy(grid->chars[off], schar); - grid->attrs[off] = attr; + schar_copy(grid->chars[off], schar); + grid->attrs[off] = attr; - put_dirty_first = MIN(put_dirty_first, col); - // TODO(bfredl): Y U NO DOUBLEWIDTH? - put_dirty_last = MAX(put_dirty_last, col+1); + put_dirty_first = MIN(put_dirty_first, col); + // TODO(bfredl): Y U NO DOUBLEWIDTH? + put_dirty_last = MAX(put_dirty_last, col+1); } } /// like grid_puts(), but output "text[len]". When "len" is -1 output up to /// a NUL. -void grid_puts_len(ScreenGrid *grid, char_u *text, int textlen, int row, - int col, int attr) +void grid_puts_len(ScreenGrid *grid, char_u *text, int textlen, int row, int col, int attr) { unsigned off; char_u *ptr = text; @@ -5825,7 +5875,7 @@ void grid_puts_len(ScreenGrid *grid, char_u *text, int textlen, int row, if (clear_next_cell) { clear_next_cell = false; } else if ((len < 0 ? ptr[mbyte_blen] == NUL - : ptr + mbyte_blen >= text + len) + : ptr + mbyte_blen >= text + len) && ((mbyte_cells == 1 && grid_off2cells(grid, off, max_off) > 1) || (mbyte_cells == 2 @@ -5924,10 +5974,11 @@ static void init_search_hl(win_T *wp) matchitem_T *cur = wp->w_match_head; while (cur != NULL) { cur->hl.rm = cur->match; - if (cur->hlg_id == 0) + if (cur->hlg_id == 0) { cur->hl.attr = 0; - else + } else { cur->hl.attr = syn_id2attr(cur->hlg_id); + } cur->hl.buf = wp->w_buffer; cur->hl.lnum = 0; cur->hl.first_lnum = 0; @@ -5981,8 +6032,8 @@ static void prepare_search_hl(win_T *wp, linenr_T lnum) if (cur != NULL) { cur->pos.cur = 0; } - bool pos_inprogress = true; // mark that a position match search is - // in progress + bool pos_inprogress = true; // mark that a position match search is + // in progress int n = 0; while (shl->first_lnum < lnum && (shl->rm.regprog != NULL || (cur != NULL && pos_inprogress))) { @@ -6000,8 +6051,9 @@ static void prepare_search_hl(win_T *wp, linenr_T lnum) } } } - if (shl != &search_hl && cur != NULL) + if (shl != &search_hl && cur != NULL) { cur = cur->next; + } } } @@ -6013,14 +6065,10 @@ static void prepare_search_hl(win_T *wp, linenr_T lnum) * shl->lnum is zero. * Careful: Any pointers for buffer lines will become invalid. */ -static void -next_search_hl ( - win_T *win, - match_T *shl, /* points to search_hl or a match */ - linenr_T lnum, - colnr_T mincol, /* minimal column for a match */ - matchitem_T *cur /* to retrieve match positions if any */ -) +static void next_search_hl(win_T *win, match_T *shl, /* points to search_hl or a match */ + linenr_T lnum, colnr_T mincol, /* minimal column for a match */ + matchitem_T *cur /* to retrieve match positions if any */ + ) FUNC_ATTR_NONNULL_ARG(2) { linenr_T l; @@ -6040,10 +6088,11 @@ next_search_hl ( // 2. If the previous match includes "mincol", use it. // 3. Continue after the previous match. l = shl->lnum + shl->rm.endpos[0].lnum - shl->rm.startpos[0].lnum; - if (lnum > l) + if (lnum > l) { shl->lnum = 0; - else if (lnum < l || shl->rm.endpos[0].col > mincol) + } else if (lnum < l || shl->rm.endpos[0].col > mincol) { return; + } } /* @@ -6106,7 +6155,7 @@ next_search_hl ( } shl->rm.regprog = NULL; shl->lnum = 0; - got_int = FALSE; // avoid the "Type :quit to exit Vim" message + got_int = FALSE; // avoid the "Type :quit to exit Vim" message break; } } else if (cur != NULL) { @@ -6131,13 +6180,10 @@ next_search_hl ( /// If there is a match fill "shl" and return one. /// Return zero otherwise. -static int -next_search_hl_pos( - match_T *shl, // points to a match - linenr_T lnum, - posmatch_T *posmatch, // match positions - colnr_T mincol // minimal column for a match -) +static int next_search_hl_pos(match_T *shl, // points to a match + linenr_T lnum, posmatch_T *posmatch, // match positions + colnr_T mincol // minimal column for a match + ) FUNC_ATTR_NONNULL_ALL { int i; @@ -6191,8 +6237,8 @@ next_search_hl_pos( /// Fill the grid from 'start_row' to 'end_row', from 'start_col' to 'end_col' /// with character 'c1' in first column followed by 'c2' in the other columns. /// Use attributes 'attr'. -void grid_fill(ScreenGrid *grid, int start_row, int end_row, int start_col, - int end_col, int c1, int c2, int attr) +void grid_fill(ScreenGrid *grid, int start_row, int end_row, int start_col, int end_col, int c1, + int c2, int attr) { schar_T sc; @@ -6445,8 +6491,8 @@ retry: // size is wrong. grid_alloc(&default_grid, Rows, Columns, true, true); - StlClickDefinition *new_tab_page_click_defs = xcalloc( - (size_t)Columns, sizeof(*new_tab_page_click_defs)); + StlClickDefinition *new_tab_page_click_defs = + xcalloc((size_t)Columns, sizeof(*new_tab_page_click_defs)); clear_tab_page_click_defs(tab_page_click_defs, tab_page_click_defs_size); xfree(tab_page_click_defs); @@ -6554,8 +6600,7 @@ void screen_free_all_mem(void) /// /// @param[out] tpcd Table to clear. /// @param[in] tpcd_size Size of the table. -void clear_tab_page_click_defs(StlClickDefinition *const tpcd, - const long tpcd_size) +void clear_tab_page_click_defs(StlClickDefinition *const tpcd, const long tpcd_size) { if (tpcd != NULL) { for (long i = 0; i < tpcd_size; i++) { @@ -6563,7 +6608,7 @@ void clear_tab_page_click_defs(StlClickDefinition *const tpcd, xfree(tpcd[i].func); } } - memset(tpcd, 0, (size_t) tpcd_size * sizeof(tpcd[0])); + memset(tpcd, 0, (size_t)tpcd_size * sizeof(tpcd[0])); } } @@ -6668,8 +6713,8 @@ void setcursor(void) // With 'rightleft' set and the cursor on a double-wide character, // position it on the leftmost column. col = curwin->w_width_inner - curwin->w_wcol - - ((utf_ptr2cells(get_cursor_pos_ptr()) == 2 - && vim_isprintc(gchar_cursor())) ? 2 : 1); + - ((utf_ptr2cells(get_cursor_pos_ptr()) == 2 + && vim_isprintc(gchar_cursor())) ? 2 : 1); } screen_adjust_grid(&grid, &row, &col); @@ -6718,8 +6763,7 @@ void win_scroll_lines(win_T *wp, int row, int line_count) /// 'col' is the column from with we start inserting. // /// 'row', 'col' and 'end' are relative to the start of the region. -void grid_ins_lines(ScreenGrid *grid, int row, int line_count, int end, int col, - int width) +void grid_ins_lines(ScreenGrid *grid, int row, int line_count, int end, int col, int width) { int i; int j; @@ -6770,8 +6814,7 @@ void grid_ins_lines(ScreenGrid *grid, int row, int line_count, int end, int col, /// 'end' is the line after the scrolled part. Normally it is Rows. /// When scrolling region used 'off' is the offset from the top for the region. /// 'row' and 'end' are relative to the start of the region. -void grid_del_lines(ScreenGrid *grid, int row, int line_count, int end, int col, - int width) +void grid_del_lines(ScreenGrid *grid, int row, int line_count, int end, int col, int width) { int j; int i; @@ -6894,8 +6937,9 @@ int showmode(void) length -= vim_strsize(edit_submode_extra); } if (length > 0) { - if (edit_submode_pre != NULL) + if (edit_submode_pre != NULL) { length -= vim_strsize(edit_submode_pre); + } if (length - vim_strsize(edit_submode) > 0) { if (edit_submode_pre != NULL) { msg_puts_attr((const char *)edit_submode_pre, attr); @@ -6915,13 +6959,14 @@ int showmode(void) } else { if (State & TERM_FOCUS) { MSG_PUTS_ATTR(_(" TERMINAL"), attr); - } else if (State & VREPLACE_FLAG) + } else if (State & VREPLACE_FLAG) { MSG_PUTS_ATTR(_(" VREPLACE"), attr); - else if (State & REPLACE_FLAG) + } else if (State & REPLACE_FLAG) { MSG_PUTS_ATTR(_(" REPLACE"), attr); - else if (State & INSERT) { - if (p_ri) + } else if (State & INSERT) { + if (p_ri) { MSG_PUTS_ATTR(_(" REVERSE"), attr); + } MSG_PUTS_ATTR(_(" INSERT"), attr); } else if (restart_edit == 'I' || restart_edit == 'i' || restart_edit == 'a') { @@ -6942,8 +6987,9 @@ int showmode(void) MSG_PUTS_ATTR(NameBuff, attr); } } - if ((State & INSERT) && p_paste) + if ((State & INSERT) && p_paste) { MSG_PUTS_ATTR(_(" (paste)"), attr); + } if (VIsual_active) { char *p; @@ -6993,8 +7039,9 @@ int showmode(void) msg_ext_flush_showmode(); /* In Visual mode the size of the selected area must be redrawn. */ - if (VIsual_active) + if (VIsual_active) { clear_showcmd(); + } // If the last window has no status line, the ruler is after the mode // message and must be redrawn @@ -7091,8 +7138,9 @@ void draw_tabline(void) return; } - if (tabline_height() < 1) + if (tabline_height() < 1) { return; + } // Init TabPageIdxs[] to zero: Clicking outside of tabs has no effect. @@ -7215,10 +7263,11 @@ void draw_tabline(void) } } - if (use_sep_chars) + if (use_sep_chars) { c = '_'; - else + } else { c = ' '; + } grid_fill(&default_grid, 0, 1, col, Columns, c, c, attr_fill); /* Put an "X" for closing the current tab if there are several. */ @@ -7276,10 +7325,11 @@ void ui_ext_tabline_update(void) */ void get_trans_bufname(buf_T *buf) { - if (buf_spname(buf) != NULL) + if (buf_spname(buf) != NULL) { STRLCPY(NameBuff, buf_spname(buf), MAXPATHL); - else + } else { home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE); + } trans_characters(NameBuff, MAXPATHL); } @@ -7343,8 +7393,9 @@ int messaging(void) /// @param always if false, only show ruler if position has changed. void showruler(bool always) { - if (!always && !redrawing()) + if (!always && !redrawing()) { return; + } if ((*p_stl != NUL || *curwin->w_p_stl != NUL) && curwin->w_status_height) { redraw_custom_statusline(curwin); } else { @@ -7353,12 +7404,13 @@ void showruler(bool always) if (need_maketitle || (p_icon && (stl_syntax & STL_IN_ICON)) - || (p_title && (stl_syntax & STL_IN_TITLE)) - ) + || (p_title && (stl_syntax & STL_IN_TITLE))) { maketitle(); + } /* Redraw the tab pages line if needed. */ - if (redraw_tabline) + if (redraw_tabline) { draw_tabline(); + } } static void win_redr_ruler(win_T *wp, bool always) @@ -7374,8 +7426,9 @@ static void win_redr_ruler(win_T *wp, bool always) * Check if cursor.lnum is valid, since win_redr_ruler() may be called * after deleting lines, before cursor.lnum is corrected. */ - if (wp->w_cursor.lnum > wp->w_buffer->b_ml.ml_line_count) + if (wp->w_cursor.lnum > wp->w_buffer->b_ml.ml_line_count) { return; + } // Don't draw the ruler while doing insert-completion, it might overwrite // the (long) mode message. @@ -7403,24 +7456,24 @@ static void win_redr_ruler(win_T *wp, bool always) */ int empty_line = FALSE; if (!(State & INSERT) - && *ml_get_buf(wp->w_buffer, wp->w_cursor.lnum, FALSE) == NUL) + && *ml_get_buf(wp->w_buffer, wp->w_cursor.lnum, FALSE) == NUL) { empty_line = TRUE; + } /* * Only draw the ruler when something changed. */ validate_virtcol_win(wp); - if ( redraw_cmdline - || always - || wp->w_cursor.lnum != wp->w_ru_cursor.lnum - || wp->w_cursor.col != wp->w_ru_cursor.col - || wp->w_virtcol != wp->w_ru_virtcol - || wp->w_cursor.coladd != wp->w_ru_cursor.coladd - || wp->w_topline != wp->w_ru_topline - || wp->w_buffer->b_ml.ml_line_count != wp->w_ru_line_count - || wp->w_topfill != wp->w_ru_topfill - || empty_line != wp->w_ru_empty) { - + if (redraw_cmdline + || always + || wp->w_cursor.lnum != wp->w_ru_cursor.lnum + || wp->w_cursor.col != wp->w_ru_cursor.col + || wp->w_virtcol != wp->w_ru_virtcol + || wp->w_cursor.coladd != wp->w_ru_cursor.coladd + || wp->w_topline != wp->w_ru_topline + || wp->w_buffer->b_ml.ml_line_count != wp->w_ru_line_count + || wp->w_topfill != wp->w_ru_topfill + || empty_line != wp->w_ru_empty) { int width; int row; int fillchar; @@ -7458,12 +7511,12 @@ static void win_redr_ruler(win_T *wp, bool always) * To avoid portability problems we use strlen() here. */ vim_snprintf((char *)buffer, RULER_BUF_LEN, "%" PRId64 ",", - (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) ? (int64_t)0L - : (int64_t)wp->w_cursor.lnum); + (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) ? (int64_t)0L + : (int64_t)wp->w_cursor.lnum); size_t len = STRLEN(buffer); col_print(buffer + len, RULER_BUF_LEN - len, - empty_line ? 0 : (int)wp->w_cursor.col + 1, - (int)virtcol + 1); + empty_line ? 0 : (int)wp->w_cursor.col + 1, + (int)virtcol + 1); /* * Add a "50%" if there is room for it. @@ -7551,8 +7604,9 @@ int number_width(win_T *wp) lnum = wp->w_buffer->b_ml.ml_line_count; } - if (lnum == wp->w_nrwidth_line_count) + if (lnum == wp->w_nrwidth_line_count) { return wp->w_nrwidth_width; + } wp->w_nrwidth_line_count = lnum; n = 0; @@ -7631,8 +7685,9 @@ void screen_resize(int width, int height) return; } - if (width < 0 || height < 0) /* just checking... */ + if (width < 0 || height < 0) { /* just checking... */ return; + } if (State == HITRETURN || State == SETWSIZE) { /* postpone the resizing */ @@ -7644,8 +7699,9 @@ void screen_resize(int width, int height) * buffer has already been closed and removing a scrollbar causes a resize * event. Don't resize then, it will happen after entering another buffer. */ - if (curwin->w_buffer == NULL) + if (curwin->w_buffer == NULL) { return; + } recursive = true; |