nuttx/tools/uncrustify.cfg
Alan C. Assis 90c9ae5680 tools/uncrustify: Update uncrustify for better support
When porting external projects to NuttX using uncrustify could help
to convert "alien code" (maybe we are the aliens) to NuttX coding
style.
Signed-off-by: Alan C. Assis <acassis@gmail.com>
Assisted-by: Hermes Agent using Deepseek-4-pro
2026-07-17 15:00:06 -03:00

189 lines
10 KiB
INI

# tools/uncrustify.cfg
#
# uncrustify config file for NuttX
#
indent_with_tabs = 0 # 0=spaces only; 1=indent to level only; 2=indent with tabs
input_tab_size = 4 # original tab size
output_tab_size = 4 # new tab size
indent_columns = 2 # Two columns per indent level
indent_label = 1 # pos: absolute col, neg: relative column
code_width = 78 # Try to limit code width to N number of columns
#
# Newlines
#
nl_max = 2 # No more than \n\n
nl_after_semicolon = true # Make sure there is only one statement per line
nl_after_brace_open = true # Add \n after brace open and before the matching brace close.
nl_if_leave_one_liners = false # Split one-line if/else statements
sp_after_semi = remove # Remove space after ';', except when followed by a comment.
sp_after_semi_for_empty = force # Force one space after the final semicolon of an empty part of a for statement.
sp_before_square = remove # Remove space before '[' (except '[]').
nl_after_label_colon = true # Force a newline after a label's colon.
nl_after_func_proto = 1 # One \n after function prototype
nl_after_func_proto_group = 2 # Two \n after last prototype
nl_after_func_body = 2 # was 1. One \n after function body
nl_after_func_body_class = 1 # One \n after '}' of a single line function body
nl_before_block_comment = 2 # Two \n before block comment
nl_before_c_comment = 2 # was 1. At least line space before C comment
nl_before_cpp_comment = 1 #At least line space before C++ comment
nl_after_multiline_comment = true # Force newline after mult-line comment
nl_after_struct = 2 # Two \n after struct
nl_after_class = 2 # Two \n after class
nl_before_access_spec = 2 # Two \n before 'private:', 'public:', ...
nl_after_access_spec = 1 # One \n after 'private:', 'public:', ...
nl_comment_func_def = 2 # Two \n between function def and function comment.
nl_after_try_catch_finally = 2 # Two \n after a try-catch-finally block
nl_around_cs_property = 0 # No change in number of newlines before/after a property, indexer or event decl.
eat_blanks_after_open_brace = true # May be a comment. Remove blank lines after '{'
eat_blanks_before_close_brace = true # May be a comment. Remove blank lines after '}'
nl_remove_extra_newlines = 1 # was 2. Remove all newlines not specified by config
nl_before_return = false # No newline before return
nl_after_return = false # No newline after return statement`
nl_enum_brace = add # "enum \n { vs enum {"
nl_union_brace = add # "union \n {" vs "union {"
nl_struct_brace = add # "struct \n {" vs "struct {"
nl_do_brace = add # "do \n {" vs "do {"
nl_if_brace = add # "if \n () {" vs "if () {"
nl_for_brace = add # "for \n () {" vs "for () {"
nl_else_brace = add # "else \n {" vs "else {"
nl_while_brace = add # "while \n () {" vs "while () {"
nl_switch_brace = add # "switch \n () {" vs "switch () {"
nl_brace_while = add # "} \n while" vs "} while"
nl_brace_else = add # "} \n else" vs "} else"
nl_var_def_blk_end_func_top = 1
nl_fcall_brace = add # "list_for_each() \n {" vs "list_for_each() {"
nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
nl_before_case = true # Newline before 'case' statement
#
# Source code modifications
#
mod_full_brace_do = add # "do { a--; } while ();" vs "do a--; while ();"
mod_full_brace_for = add # "for () { a--; }" vs "for () a--;"
mod_full_brace_function = add # Add braces on single-line function definitions. (Pawn)
mod_full_brace_if = add # "if (a) { a--; }" vs "if (a) a--;"
mod_full_brace_if_chain = 0 # Do not force brace chain on if-else
mod_full_brace_nl = 1 # Don't remove if more than 1 newlines
mod_full_brace_while = add # "while (a) { a--; } " vs "while (a) a--;"
mod_full_brace_using = add # Add braces on single-line 'using ()' statement
mod_paren_on_return = remove # "return 1;" vs "return (1);"
mod_pawn_semicolon = true # Change optional semicolons to real semicolons
mod_full_paren_if_bool = false # Don't add parens on 'while' and 'if' statement around bools
mod_remove_extra_semicolon = true # Remove superfluous semicolons
# mod_add_long_function_closebrace_comment
# mod_add_long_namespace_closebrace_comment
# mod_add_long_switch_closebrace_comment
# mod_add_long_ifdef_endif_comment
# mod_add_long_ifdef_else_comment
mod_move_case_break = false # Don't break into braced 'case'
mod_case_brace = add # Add braces around acase statements.
mod_remove_empty_return = true # Remove a void 'return;' that appears as the last statement in a function.
#
# Comment modifications
#
cmt_width = 78 # Wrap comments at line 78
# cmt_reflow_mode # No reflowing
# cmt_convert_tab_to_spaces # Tabs retained in comments
# cmt_indent_multi # Don't disable multi-line comment changes
cmt_c_group = true # Group C comments that look like they are in a block
cmt_c_nl_start = true # No empty '/*' on the first line of the combined c-comment
cmt_c_nl_end = true # Add newline before the closing '*/' of the combined c-comment
cmt_cpp_group = true # Group C++ comments that look like they are in a block
cmt_cpp_nl_start = false # No '/*' on the first line of the combined cpp-comment
cmt_cpp_nl_end = true # Add newline before the closing '*/' of the combined C++ comment
cmt_cpp_to_c = true # Change C++ comments to C comments
cmt_star_cont = true # Add star to comment continuation
cmt_sp_before_star_cont = 0 # was 1. One space before star on subsequent comment lines
# The value 1 added an extra space, indenting by 2.
cmt_sp_after_star_cont = 1 # One space after star on subsequent comment lines
cmt_multi_check_last = false # Multi-line comments with a '*' lead, remove leading spaces
# cmt_insert_file_header # filename containing the file header
# cmt_insert_file_footer # filename containing the file footer
# cmt_insert_func_header # filename containing the function header
# cmt_insert_class_header # filename containing the class header
# cmt_insert_before_preproc # ?
#
# inter-character spacing options
#
sp_return_paren = force # "return (1);" vs "return(1);"
sp_sizeof_paren = remove # "sizeof (int)" vs "sizeof(int)"
sp_before_sparen = force # "if (" vs "if("
sp_after_sparen = remove # "if () {" vs "if (){"
sp_after_cast = remove # "(int) a" vs "(int)a"
sp_inside_braces = add # "{ 1 }" vs "{1}"
sp_inside_braces_struct = add # "{ 1 }" vs "{1}"
sp_inside_braces_enum = add # "{ 1 }" vs "{1}"
sp_assign = add # "{ 1 }" vs "{1}"
sp_arith = add # Add spaces around assignment operators
sp_bool = add # Add spaces around boolean operators
sp_compare = add # Add spaces around comparison operators
sp_after_comma = add # Add space after comma
sp_func_def_paren = remove # "int foo (){" vs "int foo(){"
sp_func_call_paren = remove # "foo (" vs "foo("
sp_func_proto_paren = remove # "int foo ();" vs "int foo();"
#
# Aligning stuff
#
align_with_tabs = false # Use spaces to align
align_on_tabstop = true # align on tabstops
align_keep_tabs = false # Don't keep non-indenting tabs
align_enum_equ_span = 2 # '=' in enum definition
align_nl_cont = 2 # Align macro continuation lines
align_var_def_span = 0 # Span for aligning variable definitions
align_var_def_inline = false # Align union/struct variable definitions
align_var_def_star_style = 2 # 2=Dangling
align_var_def_colon = true # Align colons in bit field definitions
align_assign_span = 0 # Span for aligning =
align_struct_init_span = 3 # align stuff in a structure init '= { }'
align_right_cmt_span = 3 # Span for aligning comments that end lines
align_pp_define_span = 8 # Span for aligning #define bodies
align_pp_define_gap = 2 # Min space define #define variable and value
indent_brace = 2 # Indent brace 2 from level
# No space inside parens: if (a) not if ( a )
sp_inside_paren = remove
sp_inside_fparen = remove
# No space before comma: foo(a, b) not foo(a , b)
sp_before_comma = remove
# Pointer style: type *ptr (space before *, none after)
sp_before_ptr_star = add
sp_after_ptr_star = remove
sp_between_ptr_star = remove
# Remove spaces inside if/for/while parens
sp_inside_sparen = remove
# Switch-case indented 2 from switch level
indent_switch_case = 2
# Case body indented 2 from case
indent_case_brace = 2
# Preprocessor directives NOT indented
pp_indent = remove
# Align function parameters to opening paren when wrapping
align_func_params = true
indent_func_call_param = true
# One blank line before C comment (NuttX standard says 1, was 2)
nl_before_c_comment = 1
# One blank line after function body (NuttX: optional single line, was 2)
nl_after_func_body = 1
# Force brace after case colon on new line
nl_case_colon_brace = add