Uncrustify: Where do the options work?

Spaces for Parenthesis

void f1()
{
    auto a =
    [=](int *a, Something b)
    {
        // ...
    };
}
void foo(int key, int value)
{
    a = (b + c);
    a = B((c) + (d));
    return A(key, value) + B();
}
}
class STDMETHOD
{
   STDMETHOD(GetValues)(BSTR bsName, REFDATA** pData);
};
void (__attribute__((noreturn)) ****f) (void);

char *__attribute__((aligned(8))) *f;

(struct foo){...}

typedef const char *(*somefunc_t)(void *barstool);





if(a){ b = 13; }




Register (part 1)

sp_cpp_lambda_paren Add or remove space after the capture specification in C++11 lambda.
sp_inside_paren Add or remove space inside '(' and ')'.
sp_cparen_oparen Add or remove space between back-to-back parens: ')(' vs ') ('.
sp_balance_nested_parens Whether to balance spaces inside nested parens.
sp_paren_paren Add or remove space between nested parens: '((' vs ') )'.
sp_paren_brace Add or remove space between ')' and '{'.
sp_ptr_star_paren Add or remove space after a pointer star '*', if followed by an open paren (function types).
sp_before_sparen Add or remove space before '(' of 'if', 'for', 'switch', 'while', etc.
sp_inside_sparen )Add or remove space inside if-condition '(' and ')'.
sp_inside_sparen_close )Add or remove space before if-condition ')'. Overrides sp_inside_sparen.
sp_inside_sparen_open )Add or remove space after if-condition '('. Overrides sp_inside_sparen.
sp_after_sparen )Add or remove space after ')' of 'if', 'for', 'switch', and 'while', etc.

Register (part 2) TODO

sp_sparen_brace #(64)Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while', etc.
sp_invariant_paren #(65)Add or remove space between 'invariant' and '(' in the D language.
sp_after_invariant_paren #(66)Add or remove space after the ')' in 'invariant (C) c' in the D language.
sp_sizeof_paren #(95)Add or remove space between 'sizeof' and '('.
sp_func_proto_paren #(106)Add or remove space between function name and '(' on function declaration.
sp_func_proto_paren_empty #(107)Add or remove space between function name and '()' on function declaration without parameters.
sp_func_def_paren #(108)Add or remove space between function name and '(' on function definition.
sp_func_def_paren_empty #(109)Add or remove space between function name and '()' on function definition without parameters.
sp_inside_fparens Add or remove space inside function '()'.
sp_inside_fparen Add or remove space inside function '(' and ')'.
sp_inside_tparen #(112)Add or remove space inside the first parens in the function type: 'void (*x)(...)'.
sp_after_tparen_close #(113)Add or remove between the parens in the function type: 'void (*x)(...)'.
sp_fparen_brace #(115)Add or remove space between ')' and '{' of function.
sp_fparen_dbrace #(116)Java: Add or remove space between ')' and '{{' of double brace initializer.
sp_func_call_paren #(117)Add or remove space between function name and '(' on function calls.
sp_func_call_paren_empty #(118)Add or remove space between function name and '()' on function calls without parameters.
sp_func_call_user_paren (119)Add or remove space between the user function name and '(' on function calls
You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file.
sp_return_paren #(122)Add or remove space between 'return' and '('.
sp_attribute_paren #(123)Add or remove space between '__attribute__' and '('.
sp_defined_paren #(124)Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
sp_throw_paren #(125)Add or remove space between 'throw' and '(' in 'throw (something)'.
sp_catch_paren #(127)Add or remove space between 'catch' and '(' in 'catch (something) { }'
If set to ignore, sp_before_sparen is used.
sp_version_paren #(128)Add or remove space between 'version' and '(' in 'version (something) { }' (D language)
If set to ignore, sp_before_sparen is used.
sp_scope_paren #(129)Add or remove space between 'scope' and '(' in 'scope (something) { }' (D language)
If set to ignore, sp_before_sparen is used.
sp_super_paren #(130)Add or remove space between 'super' and '(' in 'super (something)'. Default=Remove.
sp_this_paren #(131)Add or remove space between 'this' and '(' in 'this (something)'. Default=Remove.
sp_extern_paren #(183)Control the spacing in 'extern (C)' (D).
sp_annotation_paren #(196)Control space between a Java annotation and the open paren.