Skip to content

Instantly share code, notes, and snippets.

@amarcadet
Last active September 10, 2022 02:14
Show Gist options
  • Save amarcadet/11055372 to your computer and use it in GitHub Desktop.
Save amarcadet/11055372 to your computer and use it in GitHub Desktop.
Uncrustify configuration
# http://uncrustify.sourceforge.net/default.cfg
#
# General options
#
newlines = auto # The type of line endings (auto/lf/crlf/cr)
input_tab_size = 4 # The original size of tabs in the input
output_tab_size = 4 # The size of tabs in the output (only used if align_with_tabs=true)
utf8_bom = remove # Control what to do with the UTF-8 BOM (ignore/add/remove/force, recommend 'remove')
utf8_force = true # Force the output encoding to UTF-8 (true/false)
#
# Indenting
#
indent_columns = 4 # The number of columns to indent per level.
indent_with_tabs = 0 # How to use tabs when indenting code (0= spaces only)
indent_brace = 0 # Spaces to indent '{' from level
indent_braces = false # Whether braces are indented to the body level
indent_else_if = false # False=treat 'else\nif' as 'else if' for indenting purposes
indent_switch_case = indent_columns # Spaces to indent 'case' from 'switch'
indent_case_brace = 0 # Spaces to indent '{' from 'case'.
indent_paren_close = 1 # Controls the indent of a close paren after a newline. (1= Align under the open paren)
indent_align_assign = false # Align continued statements at the '='.
indent_oc_block = true # Indent OC blocks at brace level instead of usual rules.
indent_oc_block_msg = 0 # Indent OC blocks in a message relative to the parameter name.
indent_oc_msg_colon = 0 # Minimum indent for subsequent parameters
#
# Spacing options
#
sp_arith = force # Add or remove space around arithmetic operator '+', '-', '/', '*', etc
sp_assign = force # Add or remove space around assignment operator '=', '+=', etc
sp_assign_default = force # Add or remove space around assignment operator '=' in a prototype
sp_enum_assign = force # Add or remove space around assignment '=' in enum
sp_bool = force # Add or remove space around boolean operators '&&' and '||'
sp_compare = force # Add or remove space around compare operator '<', '>', '==', etc
sp_inside_paren = remove # Add or remove space inside '(' and ')'
sp_paren_paren = force # Add or remove space between nested parens
sp_balance_nested_parens = true # Whether to balance spaces inside nested parens
sp_paren_brace = force # Add or remove space between ')' and '{'
sp_before_ptr_star = force # Add or remove space before pointer star '*'
sp_between_ptr_star = remove # Add or remove space between pointer stars '*'
sp_after_ptr_star = remove # Add or remove space after pointer star '*', if followed by a word.
sp_after_ptr_star_func = force # Add or remove space after a pointer star '*', if followed by a func proto/def.
sp_before_ptr_star_func = force # Add or remove space before a pointer star '*', if followed by a func proto/def.
sp_before_byref = remove # Add or remove space before a reference sign '&'
sp_before_sparen = force # Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
sp_inside_sparen = remove # Add or remove space inside if-condition '(' and ')'
sp_after_sparen = force # Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
sp_sparen_brace = force # Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
sp_after_comma = force # Add or remove space after ','
sp_after_class_colon = force # Add or remove space after class ':'
sp_before_class_colon = force # Add or remove space before class ':'
sp_after_cast = 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_inside_paren_cast = remove # Add or remove spaces inside cast parens
sp_sizeof_paren = remove # Add or remove space between 'sizeof' and '('
sp_func_proto_paren = remove # Add or remove space between function name and '(' on function declaration
sp_func_def_paren = remove # Add or remove space between function name and '(' on function definition
sp_inside_fparens = remove # Add or remove space inside empty function '()'
sp_inside_fparen = remove # Add or remove space inside function '(' and ')'
sp_func_call_paren = remove # Add or remove space between function name and '(' on function calls
sp_return_paren = force # Add or remove space between 'return' and '('
sp_attribute_paren = force # Add or remove space between '__attribute__' and '('
sp_catch_paren = force # Add or remove space between 'catch' and '(' in 'catch (something) { }
sp_macro = force # Add or remove space between macro and value
sp_macro_func = force # Add or remove space between macro function ')' and value
sp_else_brace = force # Add or remove space between 'else' and '{' if on the same line
sp_brace_else = force # Add or remove space between '}' and 'else' if on the same line
sp_brace_typedef = force # Add or remove space between '}' and the name of a typedef on the same line
sp_catch_brace = force # Add or remove space between 'catch' and '{' if on the same line
sp_brace_catch = force # Add or remove space between '}' and 'catch' if on the same line
sp_finally_brace = force # Add or remove space between 'finally' and '{' if on the same line
sp_brace_finally = force # Add or remove space between '}' and 'finally' if on the same line
sp_try_brace = force # Add or remove space between 'try' and '{' if on the same line
sp_after_oc_scope = force # Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;'
sp_after_oc_colon = remove # Add or remove space after the colon in message specs
sp_before_oc_colon = remove # Add or remove space before the colon in message specs
sp_before_oc_dict_colon = remove # Add or remove space before the colon in immutable dictionary expression
sp_after_send_oc_colon = remove # Add or remove space after the colon in message specs
sp_before_send_oc_colon = remove # Add or remove space before the colon in message specs
sp_after_oc_type = remove # Add or remove space after the (type) in message specs
sp_after_oc_return_type = remove # Add or remove space after the first (type) in message specs
sp_after_oc_at_sel = remove # Add or remove space between '@selector' and '('
sp_after_oc_at_sel_parens = force # Add or remove space between '@selector(x)' and the following word
sp_inside_oc_at_sel_parens = remove # Add or remove space inside '@selector' parens
sp_before_oc_block_caret = remove # Add or remove space before a block pointer caret
sp_after_oc_block_caret = remove # Add or remove space after a block pointer caret
sp_after_oc_msg_receiver = force # Add or remove space between the receiver and selector in a message.
sp_after_oc_property = force # Add or remove space after @property.
sp_cond_colon = force # Add or remove space around the ':' in 'b ? t : f'
sp_cond_question = force # Add or remove space around the '?' in 'b ? t : f'
sp_case_label = force # Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
sp_cmt_cpp_start = add # Control the space after the opening of a C++ comment '// A' vs '//A'
#
# Code alignment (not left column spaces/tabs)
#
# to be continued...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment