# Uncrustify-0.65-106-95188777
#
# General options
#
# The original size of tabs in the input. Default=8
input_tab_size = 4 # unsigned number
# The size of tabs in the output (only used if align_with_tabs=true). Default=8
output_tab_size = 4 # unsigned number
#
# Spacing options
#
# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
# also '>>>' '<<' '>>' '%' '|'
sp_arith = force # ignore/add/remove/force
# Add or remove space around assignment operator '=', '+=', etc
sp_assign = force # ignore/add/remove/force
# Add or remove space around boolean operators '&&' and '||'
sp_bool = force # ignore/add/remove/force
# Add or remove space around compare operator '<', '>', '==', etc
sp_compare = force # ignore/add/remove/force
# Add or remove space inside '(' and ')'
sp_inside_paren = remove # ignore/add/remove/force
# Add or remove space between nested parens: '((' vs ') )'
sp_paren_paren = remove # ignore/add/remove/force
# Add or remove space between ')' and '{'
sp_paren_brace = remove # ignore/add/remove/force
# Add or remove space before pointer star '*'
sp_before_ptr_star = add # ignore/add/remove/force
# Add or remove space before pointer star '*' that isn't followed by a variable name
# If set to 'ignore', sp_before_ptr_star is used instead.
sp_before_unnamed_ptr_star = add # ignore/add/remove/force
# 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 before a pointer star '*', if followed by a func proto/def.
sp_before_ptr_star_func = add # ignore/add/remove/force
# Add or remove space before a reference sign '&'
sp_before_byref = add # ignore/add/remove/force
# Add or remove space before a reference sign '&' that isn't followed by a variable name
# If set to 'ignore', sp_before_byref is used instead.
sp_before_unnamed_byref = add # ignore/add/remove/force
# Add or remove space after reference sign '&', if followed by a word.
sp_after_byref = add # ignore/add/remove/force
# Add or remove space before '<>'
sp_before_angle = remove # ignore/add/remove/force
# Add or remove space inside '<' and '>'
sp_inside_angle = remove # ignore/add/remove/force
# Add or remove space after '<>'
sp_after_angle = force # ignore/add/remove/force
# Add or remove space between '<>' and '(' as found in 'new List
sp_angle_paren = remove # ignore/add/remove/force
# Add or remove space between '<>' and '()' as found in 'new List
sp_angle_paren_empty = remove # ignore/add/remove/force
# Add or remove space between '>' and '>' in '>>' (template stuff C++/C# only). Default=Add
sp_angle_shift = remove # ignore/add/remove/force
# Permit removal of the space between '>>' in 'foo
# sp_angle_shift cannot remove the space without this option.
sp_permit_cpp11_shift = true # false/true
# Add or remove space before '(' of 'if', 'for', 'switch', 'while', etc.
sp_before_sparen = force # ignore/add/remove/force
# Add or remove space inside if-condition '(' and ')'
sp_inside_sparen = remove # ignore/add/remove/force
# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while', etc.
sp_sparen_brace = remove # ignore/add/remove/force
# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
sp_special_semi = force # ignore/add/remove/force
# Add or remove space before ';' in non-empty 'for' statements
sp_before_semi_for = remove # ignore/add/remove/force
# Add or remove space after ','
sp_after_comma = force # 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 = remove # ignore/add/remove/force
# Add or remove space between function name and '(' on function declaration
sp_func_proto_paren = remove # ignore/add/remove/force
# Add or remove space between function name and '()' on function declaration without parameters
sp_func_proto_paren_empty = remove # ignore/add/remove/force
# Add or remove space between function name and '(' on function definition
sp_func_def_paren = remove # ignore/add/remove/force
# Add or remove space between function name and '()' on function definition without parameters
sp_func_def_paren_empty = remove # ignore/add/remove/force
# Add or remove space inside empty function '()'
sp_inside_fparens = remove # ignore/add/remove/force
# Add or remove space inside function '(' and ')'
sp_inside_fparen = remove # ignore/add/remove/force
# Add or remove space between function name and '(' on function calls
sp_func_call_paren = 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 = remove # ignore/add/remove/force
# Add or remove space between 'return' and '('
sp_return_paren = force # ignore/add/remove/force
# Add or remove space between macro and value
sp_macro = force # ignore/add/remove/force
# Add or remove space between macro function ')' and value
sp_macro_func = force # ignore/add/remove/force
# Add or remove space between 'else' and '{' if on the same line
sp_else_brace = force # ignore/add/remove/force
# Add or remove space between '}' and 'else' if on the same line
sp_brace_else = force # ignore/add/remove/force
# Add or remove space between 'catch' and '{' if on the same line
sp_catch_brace = force # ignore/add/remove/force
# Add or remove space between '}' and 'catch' if on the same line
sp_brace_catch = force # ignore/add/remove/force
# Add or remove space between 'finally' and '{' if on the same line
sp_finally_brace = force # ignore/add/remove/force
# Add or remove space between '}' and 'finally' if on the same line
sp_brace_finally = force # ignore/add/remove/force
# Add or remove space between 'try' and '{' if on the same line
sp_try_brace = force # ignore/add/remove/force
# Add or remove space between get/set and '{' if on the same line
sp_getset_brace = force # ignore/add/remove/force
# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
sp_case_label = remove # ignore/add/remove/force
# Control the space after the opening of a C++ comment '// A' vs '//A'
sp_cmt_cpp_start = add # ignore/add/remove/force
#
# Indenting
#
# The number of columns to indent per level.
# Usually 2, 3, 4, or 8. Default=8
indent_columns = 4 # unsigned number
# How to use tabs when indenting code
# 0=spaces only
# 1=indent with tabs to brace level, align with spaces (default)
# 2=indent and align with tabs, using spaces when not on a tabstop
indent_with_tabs = 0 # unsigned number
# Whether the 'namespace' body is indented
indent_namespace = true # false/true
# Whether the 'class' body is indented
indent_class = true # false/true
# Spaces to indent 'case' from 'switch'
# Usually 0 or indent_columns.
indent_switch_case = 4 # unsigned number
# Whether to indent comments found in first column
indent_col1_comment = true # false/true
#
# Newline adding and removing options
#
# Whether to collapse empty blocks between '{' and '}'
nl_collapse_empty_body = true # false/true
# Don't split one-line braced statements inside a class xx { } body
nl_class_leave_one_liners = true # false/true
# Add or remove newlines at the start of the file
nl_start_of_file = remove # ignore/add/remove/force
# Add or remove newline at the end of the file
nl_end_of_file = force # ignore/add/remove/force
# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
nl_end_of_file_min = 1 # unsigned number
# Add or remove newline between a function call's ')' and '{', as in:
# list_for_each(item, &list) { }
nl_fcall_brace = force # ignore/add/remove/force
# Add or remove newline between 'enum' and '{'
nl_enum_brace = force # ignore/add/remove/force
# Add or remove newline between 'struct and '{'
nl_struct_brace = force # ignore/add/remove/force
# Add or remove newline between 'union' and '{'
nl_union_brace = force # ignore/add/remove/force
# Add or remove newline between 'if' and '{'
nl_if_brace = force # ignore/add/remove/force
# Add or remove newline between '}' and 'else'
nl_brace_else = force # 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 = force # ignore/add/remove/force
# Add or remove newline between 'else' and '{'
nl_else_brace = force # ignore/add/remove/force
# Add or remove newline between '}' and 'finally'
nl_brace_finally = remove # ignore/add/remove/force
# Add or remove newline between 'finally' and '{'
nl_finally_brace = force # ignore/add/remove/force
# Add or remove newline between 'try' and '{'
nl_try_brace = force # ignore/add/remove/force
# Add or remove newline between 'for' and '{'
nl_for_brace = force # ignore/add/remove/force
# Add or remove newline between 'catch' and '{'
nl_catch_brace = remove # ignore/add/remove/force
# Add or remove newline between '}' and 'catch'
nl_brace_catch = remove # ignore/add/remove/force
# Add or remove newline between 'while' and '{'
nl_while_brace = force # ignore/add/remove/force
# Add or remove newline between 'do' and '{'
nl_do_brace = force # ignore/add/remove/force
# Add or remove newline between '}' and 'while' of 'do' statement
nl_brace_while = remove # ignore/add/remove/force
# Add or remove newline between 'switch' and '{'
nl_switch_brace = force # ignore/add/remove/force
# Whether to put a newline after 'case' statement
nl_after_case = true # false/true
# Add or remove newline between 'template<>' and whatever follows.
nl_template_class = force # ignore/add/remove/force
# Add or remove newline between 'class' and '{'
nl_class_brace = force # ignore/add/remove/force
# Add or remove newline before/after each ',' in the base class list,
# (tied to pos_class_comma).
nl_class_init_args = remove # ignore/add/remove/force
# Add or remove newline between return type and function name in a function definition
nl_func_type_name = remove # ignore/add/remove/force
# Add or remove newline after '(' in a function declaration
nl_func_decl_start = remove # ignore/add/remove/force
# Add or remove newline before the ')' in a function declaration
nl_func_decl_end = remove # ignore/add/remove/force
# Add or remove newline between function signature and '{'
nl_fdef_brace = force # ignore/add/remove/force
# Whether to put a newline after semicolons, except in 'for' statements
nl_after_semicolon = true # false/true
# Whether to put a newline after brace open.
# This also adds a newline before the matching brace close.
nl_after_brace_open = true # false/true
# Whether to alter newlines in '#define' macros
nl_define_macro = true # false/true
# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and '#endif'. Does not affect top-level #ifdefs.
nl_squeeze_ifdef = true # false/true
#
# Blank line options
#
# Whether to remove blank lines after '{'
eat_blanks_after_open_brace = true # false/true
# Whether to remove blank lines before '}'
eat_blanks_before_close_brace = true # false/true
#
# Positioning options
#
# The position of boolean operators in wrapped expressions
pos_bool = lead # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
# The position of the comma in wrapped expressions
pos_comma = trail # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
# The position of trailing/leading class colon, between class and base class list
# (tied to nl_class_colon).
pos_class_colon = lead # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
#
# Line Splitting options
#
# Try to limit code width to N number of columns
code_width = 120 # unsigned number
#
# Code alignment (not left column spaces/tabs)
#
# Whether to align the colon in struct bit fields
align_var_def_colon = true # false/true
# Whether to align inline struct/enum/union variable definitions
align_var_def_inline = true # false/true
# The span for aligning on '=' in assignments (0=don't align)
align_assign_span = 1 # unsigned number
# The threshold for aligning on '=' in assignments (0=no limit)
align_assign_thresh = 1 # unsigned number
# The span for aligning on '=' in enums (0=don't align)
align_enum_equ_span = 1 # unsigned number
# The threshold for aligning on '=' in enums (0=no limit)
align_enum_equ_thresh = 1 # unsigned number
# The span for aligning struct/union (0=don't align)
align_var_struct_span = 1 # unsigned number
# The span for aligning struct initializer values (0=don't align)
align_struct_init_span = 1 # unsigned number
# The minimum space between the type and the synonym of a typedef
align_typedef_gap = 1 # unsigned number
# The span for aligning single-line typedefs (0=don't align)
align_typedef_span = 1 # unsigned number
#
# Comment modifications
#
# Whether to group cpp-comments that look like they are in a block
cmt_cpp_group = true # false/true
# If a function is declared inline to a class definition, then
# this option decides whether the comment should be inserted.
# Affects cmt_insert_func_header.
cmt_insert_before_inlines = false # false/true
#
# Code modifying options (non-whitespace)
#
# Add or remove braces on single-line 'while' statement
mod_full_brace_while = add # ignore/add/remove/force
# Add parens on 'while' and 'if' statement around bools
mod_full_paren_if_bool = true # false/true
#
# Preprocessor options
#
# Control indent of preprocessors inside #if blocks at brace level 0 (file-level)
pp_indent = force # ignore/add/remove/force
# 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
#
#
# - Token(s) can be treated as specific type(s) with the 'set' option:
# `set tokenType tokenString [tokenString...]`
#
# Example:
# `set BOOL __AND__ __OR__`
#
# tokenTypes are defined in src/token_enum.h, use them without the
# 'CT_' prefix: 'CT_BOOL' -> 'BOOL'
#
#
# - Token(s) can be treated as type(s) with the 'type' option.
# `type tokenString [tokenString...]`
#
# 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: 113
#