# The uncrustify sources are uncrustified with this config file.
using 0.70.0

# General options
output_tab_size                           = 3
tok_split_gte                             = true

# Code alignment options
align_asm_colon                           = true
align_assign_decl_func                    = 2
align_assign_func_proto_span              = 4
align_assign_span                         = 1
align_enum_equ_span                       = 4
align_enum_equ_thresh                     = 8
align_func_params                         = true
align_func_proto_star_style               = 1
align_nl_cont                             = 1
align_number_right                        = true
align_pp_define_gap                       = 4
align_pp_define_span                      = 3
align_right_cmt_same_level                = true
align_right_cmt_span                      = 3
align_struct_init_span                    = 3
align_typedef_gap                         = 3
align_typedef_span                        = 5
align_typedef_star_style                  = 1
align_var_class_span                      = 2
align_var_def_amp_style                   = 1
align_var_def_colon                       = true
align_var_def_inline                      = true
align_var_def_span                        = 2
align_var_def_star_style                  = 1
align_var_struct_span                     = 3

# Indenting options
indent_bool_paren                         = 1
indent_class                              = true
indent_columns                            = 3
indent_compound_literal_return            = false
indent_cpp_lambda_only_once               = true
indent_first_bool_expr                    = true
indent_macro_brace                        = true
indent_member                             = 3
indent_sparen_extra                       = 0
indent_with_tabs                          = 0
indent_oc_inside_msg_sel                  = false
indent_off_after_assign                   = false
indent_inside_ternary_operator            = false

# Newline adding and removing options
nl_after_access_spec                      = 1
nl_after_brace_close                      = true
nl_after_brace_open                       = true
nl_after_case                             = true
nl_after_do                               = force
nl_after_for                              = force
nl_after_func_proto                       = 1
nl_after_func_proto_group                 = 2
nl_after_if                               = remove
nl_after_member                           = remove
nl_after_namespace                        = 2
nl_after_return                           = true
nl_after_semicolon                        = true
nl_after_switch                           = remove
nl_after_vbrace_open                      = true
nl_after_while                            = remove
nl_assign_brace                           = add
nl_assign_leave_one_liners                = true
nl_before_brace_open                      = false
nl_before_case                            = true
nl_before_do                              = force
nl_before_for                             = force
nl_before_func_body_def                   = 3
nl_before_if                              = force
nl_before_if_closing_paren                = remove
nl_before_namespace                       = 2
nl_before_opening_brace_func_class_def    = force
nl_before_switch                          = force
nl_before_while                           = force
nl_brace_catch                            = force
nl_brace_else                             = add
nl_brace_fparen                           = remove
nl_brace_while                            = remove
nl_case_colon_brace                       = force
nl_catch_brace                            = add
nl_class_brace                            = force
nl_class_colon                            = remove
nl_class_leave_one_liner_groups           = true
nl_class_leave_one_liners                 = true
nl_template_args                          = false
nl_template_class_decl                    = remove
nl_template_class_def                     = force
nl_template_end                           = false
nl_template_func_decl                     = remove
nl_template_func_def                      = force
nl_template_start                         = false
nl_template_var                           = remove
nl_template_using                         = remove
nl_comment_func_def                       = 1
nl_constr_colon                           = force
nl_constr_init_args                       = force
nl_do_brace                               = add
nl_else_brace                             = add
nl_else_if                                = remove
nl_elseif_brace                           = add
nl_end_of_file                            = force
nl_end_of_file_min                        = 1
nl_enum_brace                             = force
nl_enum_class_identifier                  = remove
nl_enum_class                             = remove
nl_enum_colon_type                        = remove
nl_enum_identifier_colon                  = remove
nl_enum_leave_one_liners                  = true
nl_fcall_brace                            = add
nl_fdef_brace                             = force
nl_fdef_brace_cond                        = force
nl_finally_brace                          = add
nl_for_brace                              = add
nl_func_call_empty                        = remove
nl_func_call_paren                        = remove
nl_func_call_paren_empty                  = remove
nl_func_class_scope                       = remove
nl_func_decl_args                         = remove
nl_func_decl_empty                        = remove
nl_func_decl_end                          = remove
nl_func_decl_end_single                   = remove
nl_func_decl_start                        = remove
nl_func_decl_start_single                 = remove
nl_func_def_empty                         = remove
nl_func_def_end                           = remove
nl_func_def_end_single                    = remove
nl_func_def_paren                         = remove
nl_func_def_paren_empty                   = remove
nl_func_def_start                         = remove
nl_func_def_start_single                  = remove
nl_func_paren                             = remove
nl_func_paren_empty                       = remove
nl_func_proto_type_name                   = remove
nl_func_scope_name                        = remove
nl_func_type_name                         = remove
nl_func_type_name_class                   = remove
nl_getset_leave_one_liners                = true
nl_if_brace                               = add
nl_inside_empty_func                      = 1
nl_inside_namespace                       = 2
nl_max                                    = 3
nl_namespace_brace                        = force
nl_return_expr                            = remove
nl_squeeze_ifdef                          = true
nl_start_of_file                          = remove
nl_struct_brace                           = add
nl_switch_brace                           = add
nl_try_brace                              = add
nl_type_brace_init_lst                    = force
nl_type_brace_init_lst_close              = force
nl_type_brace_init_lst_open               = force
nl_union_brace                            = add
nl_var_def_blk_end_func_top               = 1
nl_while_brace                            = add

# Positioning options
pos_bool                                  = lead
pos_constr_colon                          = lead_break
pos_constr_comma                          = lead_force
pos_enum_comma                            = trail_force

# Preprocessor options
pp_indent                                 = remove
pp_space_after                            = remove
pp_multiline_define_body_indent           = 3

# Spacing options
sp_addr                                   = remove
sp_after_angle                            = force
sp_after_byref_func                       = remove
sp_after_byref                            = remove
sp_after_cast                             = remove
sp_after_class_colon                      = force
sp_after_comma                            = force
sp_after_constr_colon                     = force
sp_after_dc                               = remove
sp_after_for_colon                        = force
sp_after_new                              = force
sp_after_operator                         = remove
sp_after_operator_sym                     = remove
sp_after_ptr_star_func                    = remove
sp_after_ptr_star_qualifier               = remove
sp_after_ptr_star                         = remove
sp_after_semi                             = force
sp_after_semi_for                         = force
sp_after_semi_for_empty                   = remove
sp_after_sparen                           = force
sp_after_tparen_close                     = remove
sp_after_type                             = force
sp_after_type_brace_init_lst_open         = force
sp_angle_paren_empty                      = remove
sp_angle_paren                            = remove
sp_angle_word                             = force
sp_arith_additive                         = force
sp_arith                                  = force
sp_assign_default                         = force
sp_assign                                 = force
sp_attribute_paren                        = remove
sp_balance_nested_parens                  = false
sp_before_angle                           = remove
sp_before_byref                           = force
sp_before_byref_func                      = force
sp_before_case_colon                      = remove
sp_before_class_colon                     = force
sp_before_comma                           = remove
sp_before_dc                              = remove
sp_before_ellipsis                        = remove
sp_before_for_colon                       = force
sp_before_ptr_star                        = force
sp_before_ptr_star_func                   = force
sp_before_semi                            = remove
sp_before_semi_for_empty                  = force
sp_before_semi_for                        = remove
sp_before_sparen                          = force
sp_before_square                          = remove
sp_before_squares                         = remove
sp_before_type_brace_init_lst_close       = force
sp_before_unnamed_byref                   = force
sp_before_unnamed_ptr_star                = force
sp_before_vardef_square                   = remove
sp_between_ptr_star                       = remove
sp_between_semi_for_empty                 = force
sp_bool                                   = force
sp_brace_brace                            = force
sp_brace_close_while                      = force
sp_brace_typedef                          = force
sp_catch_paren                            = force
sp_compare                                = force
sp_cond_colon_after                       = force
sp_cond_colon_before                      = force
sp_cond_question_after                    = force
sp_cond_question_before                   = force
sp_cpp_before_struct_binding              = remove
sp_cpp_cast_paren                         = remove
sp_cpp_lambda_fparen                      = remove
sp_cpp_lambda_paren_brace                 = force
sp_cpp_lambda_square_brace                = force
sp_cpp_lambda_square_paren                = remove
sp_decltype_paren                         = remove
sp_defined_paren                          = force
sp_deref                                  = remove
sp_do_brace_open                          = force
sp_endif_cmt                              = force
sp_enum_after_assign                      = force
sp_enum_assign                            = force
sp_enum_before_assign                     = force
sp_enum_colon                             = force
sp_fparen_brace                           = force
sp_fparen_brace_initializer               = force
sp_func_call_paren_empty                  = remove
sp_func_call_paren                        = remove
sp_func_class_paren                       = remove
sp_func_class_paren_empty                 = remove
sp_func_def_paren_empty                   = remove
sp_func_def_paren                         = remove
sp_func_proto_paren_empty                 = remove
sp_func_proto_paren                       = remove
sp_func_type_paren                        = remove
sp_incdec                                 = remove
sp_inside_angle_empty                     = remove
sp_inside_angle                           = remove
sp_inside_braces_empty                    = remove
sp_inside_braces_enum                     = force
sp_inside_braces                          = force
sp_inside_braces_struct                   = force
sp_inside_fparen                          = remove
sp_inside_fparens                         = remove
sp_inside_paren                           = remove
sp_inside_paren_cast                      = remove
sp_inside_sparen                          = remove
sp_inside_sparen_close                    = remove
sp_inside_sparen_open                     = remove
sp_inside_square                          = remove
sp_inside_square_empty                    = remove
sp_inside_tparen                          = remove
sp_inv                                    = remove
sp_member                                 = remove
sp_not                                    = remove
sp_paren_paren                            = remove
sp_paren_qualifier                        = force
sp_pp_concat                              = force
sp_pp_stringify                           = force
sp_ptr_star_func_var                      = remove
sp_ptr_star_func_type                     = remove
sp_ptr_star_paren                         = force
sp_return_brace                           = remove
sp_return_paren                           = remove
sp_sign                                   = remove
sp_sizeof_paren                           = remove
sp_sparen_brace                           = force
sp_template_angle                         = remove
sp_trailing_return                        = force
sp_type_brace_init_lst                    = remove
sp_type_func                              = force
sp_while_paren_open                       = force
sp_word_brace_init_lst                    = remove

# Comment modification options
cmt_star_cont                             = true

# eat
eat_blanks_after_open_brace               = true
eat_blanks_before_close_brace             = true

# Code modifying options
mod_add_long_function_closebrace_comment  = 40
mod_add_long_namespace_closebrace_comment = 5
mod_add_long_switch_closebrace_comment    = 40
mod_full_brace_do                         = add
mod_full_brace_for                        = add
mod_full_brace_if                         = add
mod_full_brace_while                      = add
mod_paren_on_return                       = add
#mod_remove_empty_return                   = true
mod_remove_empty_return                   = false
mod_remove_extra_semicolon                = true
mod_sort_include                          = true
mod_sort_incl_import_prioritize_filename  = false
mod_sort_incl_import_prioritize_extensionless       = false
mod_sort_incl_import_prioritize_angle_over_quotes   = false
mod_sort_incl_import_ignore_extension     = false
mod_sort_incl_import_grouping_enabled     = false
debug_timeout                             = 0

# the build of uncrustify needs the options to be set to ignore
sp_after_assign                           = ignore
sp_before_assign                          = ignore
sp_before_tr_cmt                          = ignore
sp_cmt_cpp_start                          = ignore
nl_before_member                          = ignore
nl_brace_brace                            = ignore
nl_cpp_ldef_brace                         = ignore   // TODO
nl_enum_own_lines                         = ignore
nl_func_call_args                         = ignore
nl_func_call_start                        = ignore   // remove
nl_func_call_end                          = ignore   // remove
nl_func_def_args                          = ignore

use_form_feed_no_more_as_whitespace_character = false

# NOT yet used sp_xx options
# sp_after_decltype
# sp_after_invariant_paren
# sp_after_mdatype_commas
# sp_after_newop_paren
# sp_after_noexcept
# sp_after_oc_at_sel
# sp_after_oc_at_sel_parens
# sp_after_oc_block_caret
# sp_after_oc_colon
# sp_after_oc_dict_colon
# sp_after_oc_msg_receiver
# sp_after_oc_property
# sp_after_oc_return_type
# sp_after_oc_scope
# sp_after_oc_synchronized
# sp_after_oc_type
# sp_after_operator_sym_empty
# sp_after_ptr_block_caret
# sp_after_send_oc_colon
# sp_after_tag
# sp_after_throw
# sp_angle_colon
# sp_angle_shift
# sp_annotation_paren
# sp_before_constr_colon
# sp_before_mdatype_commas
# sp_before_nl_cont
# sp_before_oc_block_caret
# sp_before_oc_colon
# sp_before_oc_dict_colon
# sp_before_oc_proto_list
# sp_before_pp_stringify
# sp_before_send_oc_colon
# sp_before_square_asm_block
# sp_before_template_paren
# sp_between_mdatype_commas
# sp_between_new_paren
# sp_brace_catch
# sp_brace_else
# sp_brace_finally
# sp_case_label
# sp_catch_brace
# sp_cond_question
# sp_cond_ternary_short
# sp_cparen_oparen
# sp_cpp_lambda_assign
# sp_d_array_colon
# sp_else_brace
# sp_enum_brace
# sp_enum_paren
# sp_extern_paren
# sp_finally_brace
# sp_fparen_dbrace
# sp_func_call_user_inside_fparen
# sp_func_call_user_paren
# sp_func_call_user_paren_paren
# sp_getset_brace
# sp_inside_braces_oc_dict
# sp_inside_newop_paren
# sp_inside_newop_paren_close
# sp_inside_newop_paren_open
# sp_inside_oc_at_sel_parens
# sp_inside_square_oc_array
# sp_inside_type_brace_init_lst
# sp_invariant_paren
# sp_macro
# sp_macro_func
# sp_oc_brace_catch
# sp_oc_catch_brace
# sp_oc_catch_paren
# sp_oc_classname_paren
# sp_paren_brace
# sp_paren_comma
# sp_paren_ellipsis
# sp_paren_noexcept
# sp_range
# sp_scope_paren
# sp_sizeof_ellipsis
# sp_sizeof_ellipsis_paren
# sp_special_semi
# sp_square_fparen
# sp_super_paren
# sp_this_paren
# sp_throw_paren
# sp_trailing_ret_t
# sp_try_brace
# sp_type_ellipsis
# sp_vala_after_translation
# sp_version_paren
# sp_word_brace
# sp_word_brace_ns

# NOT yet used nl_xx options
# nl_after_annotation
# nl_after_square_assign
# nl_after_synchronized
# nl_assign_square
# nl_before_synchronized
# nl_before_throw
# nl_between_annotation
# nl_brace_finally
# nl_brace_square
# nl_brace_struct_var
# nl_class_init_args
# nl_getset_brace
# nl_oc_before_end
# nl_oc_before_implementation
# nl_oc_before_interface
# nl_oc_block_brace
# nl_oc_brace_catch
# nl_oc_catch_brace
# nl_oc_implementation_brace
# nl_oc_interface_brace
# nl_oc_mdef_brace
# nl_paren_dbrace_open
# nl_property_brace
# nl_scope_brace
# nl_synchronized_brace
# nl_template_class
# nl_tsquare_brace
# nl_unittest_brace
# nl_using_brace
# nl_version_brace
# nl_func_call_args_multi_line_ignore_closures

# NOT yet used indent_xx options
# indent_off_after_return
