Explorar el Código

scripts: add uncrustify

Daniele Bartolini hace 3 años
padre
commit
6d715e28fa

+ 187 - 0
scripts/uncrustify/cpp.cfg

@@ -0,0 +1,187 @@
+#
+# Copyright (c) 2012-2022 Daniele Bartolini et al.
+# License: https://github.com/dbartolini/crown/blob/master/LICENSE
+#
+
+newlines                                  = LF
+input_tab_size                            = 4
+output_tab_size                           = 4
+
+align_assign_decl_func                    = 2
+align_assign_span                         = 0
+align_assign_thresh                       = 2
+align_enum_equ_span                       = 4
+align_keep_extra_space                    = true
+align_nl_cont                             = false
+align_number_right                        = true
+align_on_tabstop                          = false
+align_pp_define_gap                       = 0
+align_pp_define_span                      = 0
+align_right_cmt_gap                       = 0
+align_right_cmt_same_level                = true
+align_right_cmt_span                      = 0
+align_struct_init_span                    = 0 # Disable due to instability
+align_typedef_gap                         = 0
+align_typedef_span                        = 0
+align_var_def_colon                       = true
+align_var_def_inline                      = true
+align_var_def_span                        = 0
+align_var_def_thresh                      = 0
+align_var_struct_span                     = 0
+align_with_tabs                           = false
+cmt_star_cont                             = true
+disable_processing_cmt                    = "code-format off"
+eat_blanks_after_open_brace               = true
+eat_blanks_before_close_brace             = true
+enable_processing_cmt                     = "code-format on"
+indent_align_assign                       = false
+indent_align_string                       = false
+indent_brace                              = 0
+indent_case_brace                         = 0
+indent_class                              = true
+indent_columns                            = output_tab_size
+indent_continue                           = output_tab_size
+indent_cpp_lambda_body                    = true
+indent_func_call_param                    = true
+indent_func_def_param                     = true
+indent_ignore_first_continue              = false
+indent_label                              = -4
+indent_namespace                          = true
+indent_namespace_inner_only               = true
+indent_single_after_return                = true
+indent_with_tabs                          = 1
+mod_add_long_namespace_closebrace_comment = 1
+mod_case_brace                            = remove
+mod_full_brace_do                         = ignore
+mod_full_brace_for                        = ignore
+mod_full_brace_if_chain                   = 2
+mod_full_brace_while                      = ignore
+mod_move_case_break                       = true
+mod_move_case_return                      = true
+mod_paren_on_return                       = remove
+nl_after_func_body                        = 2
+nl_after_func_proto_group                 = 1
+nl_after_return                           = false
+nl_assign_brace                           = add
+nl_assign_leave_one_liners                = true
+nl_before_block_comment                   = 2
+nl_before_case                            = false
+nl_brace_else                             = remove
+nl_brace_finally                          = remove
+nl_brace_while                            = remove
+nl_case_colon_brace                       = remove
+nl_catch_brace                            = remove
+nl_constr_colon                           = add
+nl_constr_init_args                       = add
+nl_cpp_lambda_leave_one_liners            = true
+nl_cpp_ldef_brace                         = remove
+nl_do_brace                               = remove
+nl_do_leave_one_liners                    = true
+nl_else_brace                             = remove
+nl_else_if                                = remove
+nl_elseif_brace                           = remove
+nl_end_of_file                            = force
+nl_end_of_file_min                        = 1
+nl_enum_brace                             = add
+nl_enum_leave_one_liners                  = true
+nl_fcall_brace                            = add
+nl_fdef_brace                             = add
+nl_finally_brace                          = remove
+nl_for_brace                              = remove
+nl_for_leave_one_liners                   = true
+nl_func_var_def_blk                       = 0
+nl_if_brace                               = remove
+nl_max                                    = 2
+nl_squeeze_ifdef                          = true
+nl_start_of_file                          = remove
+nl_struct_brace                           = add
+nl_switch_brace                           = remove
+nl_try_brace                              = remove
+nl_union_brace                            = add
+nl_while_brace                            = remove
+nl_while_leave_one_liners                 = true
+pos_bool                                  = trail
+pp_ignore_define_body                     = true
+pp_indent                                 = ignore
+pp_indent_at_level                        = false
+pp_indent_count                           = 0
+pp_space                                  = ignore
+pp_space_count                            = 4
+sp_after_angle                            = ignore
+sp_after_byref                            = remove
+sp_after_byref_func                       = remove
+sp_after_cast                             = remove
+sp_after_comma                            = add
+sp_after_emb_cmt                          = add
+sp_after_ptr_star                         = remove
+sp_after_ptr_star_func                    = remove
+sp_after_sparen                           = force
+sp_angle_paren                            = remove
+sp_angle_paren_empty                      = remove
+sp_angle_shift                            = remove
+sp_arith                                  = ignore
+sp_arith_additive                         = add
+sp_assign                                 = add
+sp_before_angle                           = remove
+sp_before_byref                           = force
+sp_before_byref_func                      = force
+sp_before_emb_cmt                         = add
+sp_before_ptr_star                        = force
+sp_before_ptr_star_func                   = force
+sp_before_semi                            = remove
+sp_before_sparen                          = force
+sp_before_tr_cmt                          = add
+sp_between_ptr_star                       = remove
+sp_bool                                   = force
+sp_brace_brace                            = add
+sp_brace_close_while                      = force
+sp_brace_else                             = force
+sp_cmt_cpp_doxygen                        = true
+sp_cmt_cpp_start                          = add
+sp_compare                                = force
+sp_cpp_cast_paren                         = remove
+sp_cpp_lambda_paren_brace                 = add
+sp_do_brace_open                          = force
+sp_else_brace                             = force
+sp_endif_cmt                              = add
+sp_enum_assign                            = add
+sp_fparen_brace                           = add
+sp_func_call_paren                        = ignore
+sp_func_class_paren                       = remove
+sp_func_def_paren                         = remove
+sp_func_proto_paren                       = remove
+sp_inside_angle                           = remove
+sp_inside_braces                          = ignore
+sp_inside_braces_enum                     = force
+sp_inside_braces_struct                   = force
+sp_inside_for                             = remove
+sp_inside_fparen                          = remove
+sp_inside_paren                           = remove
+sp_inside_sparen                          = remove
+sp_inside_square                          = ignore
+sp_member                                 = remove
+sp_paren_brace                            = remove
+sp_paren_paren                            = remove
+sp_permit_cpp11_shift                     = true
+sp_ptr_star_func_type                     = remove
+sp_ptr_star_func_var                      = remove
+sp_return_paren                           = remove
+sp_sizeof_paren                           = remove
+sp_sparen_brace                           = force
+sp_template_angle                         = remove
+sp_try_brace                              = force
+sp_type_func                              = add
+use_indent_continue_only_once             = true
+
+pos_arith                                 = ignore
+pos_assign                                = ignore
+pos_bool                                  = ignore
+pos_class_colon                           = ignore
+pos_class_comma                           = ignore
+pos_comma                                 = ignore
+pos_compare                               = ignore
+pos_conditional                           = ignore
+pos_constr_colon                          = lead_break
+pos_constr_comma                          = lead_break
+pos_enum_comma                            = ignore
+pos_shift                                 = ignore

+ 9 - 0
scripts/uncrustify/format-all.sh

@@ -0,0 +1,9 @@
+find src/ -iname *.h -o -iname *.inl -o -iname *.cpp \
+	| tr '\n' '\0'                                   \
+	| xargs -0 -n1 bash -c                           \
+		'cat $0 | ./scripts/uncrustify/uncrustify-wrapper.sh scripts/uncrustify/cpp.cfg > $0.new && mv $0.new $0'
+
+find tools/ -iname *.vala -o -iname *.c \
+	| tr '\n' '\0'                      \
+	| xargs -0 -n1 bash -c \
+		'cat $0 | ./scripts/uncrustify/uncrustify-wrapper.sh scripts/uncrustify/vala.cfg > $0.new && mv $0.new $0'

+ 59 - 0
scripts/uncrustify/uncrustify-wrapper.sh

@@ -0,0 +1,59 @@
+#! /bin/bash
+
+# Usage:
+# find src/ -iname *.h -o -iname *.inl -o -iname *.cpp | tr '\n' '\0' | xargs -0 -n1 ./code-format.sh 2> /dev/null
+
+UNCRUSTIFY_CFG=$1
+
+# Convert leading spaces to tabs.
+fix_indentation_char () {
+	unexpand --tabs=4 --first-only
+}
+
+# Add newline before namespace's closing bracket.
+add_newline_before_namespace_closing_bracket () {
+	awk '                        \
+		/} \/[\/\*] namespace/ { \
+			print '\n';          \
+		}                        \
+		{                        \
+			print $0;            \
+		}                        \
+	'
+}
+
+# Fix the indentation of ; character when it is alone on a line.
+fix_semicolon_indentation () {
+	awk '
+		{                                                      \
+			if ($0 ~ /[\t];$/) {                               \
+				output_str = "";                               \
+				last_indent_level = gsub(/\t/, "", last_line); \
+                                                               \
+				for (ii = 0; ii < last_indent_level; ++ii)     \
+					output_str = output_str "\t";              \
+				output_str = output_str ";";                   \
+                                                               \
+				print output_str;                              \
+			} else {                                           \
+				print $0                                       \
+			}                                                  \
+		}                                                      \
+		{                                                      \
+			last_line = $0;                                    \
+		}                                                      \
+	'
+}
+
+# Do uncrustify.
+uncrustify () {
+	../uncrustify/build/uncrustify               \
+		-c $UNCRUSTIFY_CFG                       \
+		-l $(basename -s '.cfg' $UNCRUSTIFY_CFG) \
+		-q
+}
+
+uncrustify                                         \
+	| fix_indentation_char                         \
+	| add_newline_before_namespace_closing_bracket \
+	| fix_semicolon_indentation

+ 185 - 0
scripts/uncrustify/vala.cfg

@@ -0,0 +1,185 @@
+#
+# Copyright (c) 2012-2022 Daniele Bartolini et al.
+# License: https://github.com/dbartolini/crown/blob/master/LICENSE
+#
+
+newlines                                  = LF
+input_tab_size                            = 4
+output_tab_size                           = 4
+
+align_assign_decl_func                    = 2
+align_assign_span                         = 0
+align_assign_thresh                       = 2
+align_enum_equ_span                       = 4
+align_keep_extra_space                    = true
+align_nl_cont                             = false
+align_number_right                        = true
+align_on_tabstop                          = false
+align_pp_define_gap                       = 0
+align_pp_define_span                      = 0
+align_right_cmt_gap                       = 0
+align_right_cmt_same_level                = true
+align_right_cmt_span                      = 0
+align_struct_init_span                    = 0 # Disable due to instability
+align_typedef_gap                         = 0
+align_typedef_span                        = 0
+align_var_def_colon                       = true
+align_var_def_inline                      = true
+align_var_def_span                        = 0
+align_var_def_thresh                      = 0
+align_var_struct_span                     = 0
+align_with_tabs                           = false
+cmt_star_cont                             = true
+disable_processing_cmt                    = "code-format off"
+eat_blanks_after_open_brace               = true
+eat_blanks_before_close_brace             = true
+enable_processing_cmt                     = "code-format on"
+indent_align_assign                       = false
+indent_align_string                       = false
+indent_brace                              = 0
+indent_case_brace                         = 0
+indent_class                              = true
+indent_columns                            = output_tab_size
+indent_continue                           = output_tab_size
+indent_cpp_lambda_body                    = true
+indent_func_call_param                    = true
+indent_func_def_param                     = true
+indent_ignore_first_continue              = false
+indent_label                              = -4
+indent_namespace                          = true
+indent_namespace_inner_only               = true
+indent_single_after_return                = true
+indent_with_tabs                          = 1
+mod_add_long_namespace_closebrace_comment = 1
+mod_case_brace                            = remove
+mod_full_brace_do                         = ignore
+mod_full_brace_for                        = ignore
+mod_full_brace_if_chain                   = 2
+mod_full_brace_while                      = ignore
+mod_move_case_break                       = true
+mod_move_case_return                      = true
+mod_paren_on_return                       = remove
+nl_after_func_body                        = 2
+nl_after_func_proto_group                 = 1
+nl_after_return                           = false
+nl_assign_brace                           = add
+nl_assign_leave_one_liners                = true
+nl_before_block_comment                   = 2
+nl_before_case                            = false
+nl_brace_else                             = remove
+nl_brace_finally                          = remove
+nl_brace_while                            = remove
+nl_case_colon_brace                       = remove
+nl_catch_brace                            = remove
+nl_constr_colon                           = add
+nl_constr_init_args                       = add
+nl_cpp_lambda_leave_one_liners            = true
+nl_cpp_ldef_brace                         = remove
+nl_do_brace                               = remove
+nl_do_leave_one_liners                    = true
+nl_else_brace                             = remove
+nl_else_if                                = remove
+nl_elseif_brace                           = remove
+nl_end_of_file                            = force
+nl_end_of_file_min                        = 1
+nl_enum_brace                             = add
+nl_enum_leave_one_liners                  = true
+nl_fcall_brace                            = add
+nl_fdef_brace                             = add
+nl_finally_brace                          = remove
+nl_for_brace                              = remove
+nl_for_leave_one_liners                   = true
+nl_func_var_def_blk                       = 0
+nl_if_brace                               = remove
+nl_max                                    = 2
+nl_squeeze_ifdef                          = true
+nl_start_of_file                          = remove
+nl_struct_brace                           = add
+nl_switch_brace                           = remove
+nl_try_brace                              = remove
+nl_union_brace                            = add
+nl_while_brace                            = remove
+nl_while_leave_one_liners                 = true
+pos_bool                                  = trail
+pp_ignore_define_body                     = true
+pp_indent                                 = ignore
+pp_indent_at_level                        = false
+pp_indent_count                           = 0
+pp_space                                  = ignore
+pp_space_count                            = 4
+sp_after_angle                            = ignore
+sp_after_byref                            = add
+sp_after_cast                             = remove
+sp_after_comma                            = add
+sp_after_emb_cmt                          = add
+sp_after_ptr_star                         = add
+sp_after_sparen                           = force
+sp_angle_paren                            = remove
+sp_angle_paren_empty                      = remove
+sp_angle_shift                            = remove
+sp_arith                                  = ignore
+sp_arith_additive                         = add
+sp_assign                                 = add
+sp_before_angle                           = remove
+sp_before_byref                           = remove
+sp_before_emb_cmt                         = add
+sp_before_ptr_star                        = remove
+sp_before_ptr_star_func                   = remove
+sp_before_semi                            = remove
+sp_before_sparen                          = force
+sp_before_tr_cmt                          = add
+sp_between_ptr_star                       = remove
+sp_bool                                   = force
+sp_brace_brace                            = add
+sp_brace_close_while                      = force
+sp_brace_else                             = force
+sp_cmt_cpp_doxygen                        = true
+sp_cmt_cpp_start                          = add
+sp_compare                                = force
+sp_cpp_cast_paren                         = remove
+sp_cpp_lambda_paren_brace                 = add
+sp_do_brace_open                          = force
+sp_else_brace                             = force
+sp_endif_cmt                              = add
+sp_enum_assign                            = add
+sp_fparen_brace                           = add
+sp_func_call_paren                        = ignore
+sp_func_class_paren                       = remove
+sp_func_def_paren                         = remove
+sp_func_proto_paren                       = remove
+sp_inside_angle                           = remove
+sp_inside_braces                          = ignore
+sp_inside_braces_enum                     = force
+sp_inside_braces_struct                   = force
+sp_inside_for                             = remove
+sp_inside_fparen                          = remove
+sp_inside_paren                           = remove
+sp_inside_sparen                          = remove
+sp_inside_square                          = ignore
+sp_member                                 = remove
+sp_paren_brace                            = remove
+sp_paren_paren                            = remove
+sp_permit_cpp11_shift                     = true
+sp_ptr_star_func_type                     = remove
+sp_ptr_star_func_var                      = remove
+sp_return_paren                           = remove
+sp_sizeof_paren                           = remove
+sp_sparen_brace                           = force
+sp_template_angle                         = remove
+sp_try_brace                              = force
+sp_try_brace                              = force
+sp_type_func                              = add
+use_indent_continue_only_once             = true
+
+pos_arith                                 = ignore
+pos_assign                                = ignore
+pos_bool                                  = ignore
+pos_class_colon                           = ignore
+pos_class_comma                           = ignore
+pos_comma                                 = ignore
+pos_compare                               = ignore
+pos_conditional                           = ignore
+pos_constr_colon                          = lead_break
+pos_constr_comma                          = lead_break
+pos_enum_comma                            = ignore
+pos_shift                                 = ignore