1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
|
# Run `uncrustify --show-config` to see documentation for these options.
#
# See also: https://gitlab.gnome.org/GNOME/mutter/-/blob/main/doc/coding-style.md
#################################################################################
# CHANGES
#
# The first part of this file controls what automated changes Uncrustify makes.
#################################################################################
# Files are in UTF-8
utf8_force = true
# Unix style newlines
newlines = lf
# We use spaces for alignment
indent_with_tabs = 0
# We use 2 spaces for indenting
indent_columns = 2
# We indent braces 2 spaces deep
indent_brace = 2
indent_case_brace = 2
# We indent 2 spaces for multi-line #define body
pp_multiline_define_body_indent = 2
# We align parameters in function definitions, like this:
#
# int64_t meta_string_to_date (const char *date_string,
# int *offset_p,
# GError **error)
#
align_func_params = true
# A '*' in a variable definition is considered 'dangling', rather than
# being part of the variable type. This produces the following style of
# alignment:
#
# meta_string_to_date (const gchar *date_string,
# gint *offset_p,
# GError **error)
#
align_var_def_star_style = 2 # dangling
# Keep extra spaces which uncrustify thinks are not needed for alignment.
#
# This causes uncrustify to preserve a lot more of the existing alignment
# in Mutter's source code, for example we can keep this:
#
# meta_string_to_date (const char *date_string,
# int *offset_p,
# GError **error)
#
# Instead of it being changed to this:
#
# meta_string_to_date (const char *date_string,
# int *offset_p,
# GError **error)
#
# Because this setting is enabled, the uncrustify process is not
# idempodent with regards to variable alignment because we still have some
# extra alignment in the sourcecode which uncrustify did not insert, and
# rerunning uncrustify with different settings might remove those extra spaces.
align_keep_extra_space = true
# Ensure arithmetic operators are properly spaced, e.g:
# foo = 1 + (2 / 4);
sp_arith = force
sp_arith_additive = force
# Ensure spaces between assignments, e.g.:
# foo = 2;
# foo += 2;
sp_assign = force
# Enforce spacing around = operator (and -=, etc).
sp_after_assign = force
sp_before_assign = force
# Remove spaces between '*', e.g.:
# char **foo;
sp_between_ptr_star = remove
# Remove space after pointer stars.
sp_after_ptr_star = remove
# But add space before pointer return types and function
sp_after_ptr_star_func = force
# Ensure there is space between '*' and '(', e.g.:
# typedef GNode* (* ForeachFunc) (...);
sp_ptr_star_paren = force
# & for indirections must be together with the variable
sp_after_byref = remove
# Remove spacing around ++ / -- operators.
sp_incdec = remove
# Enforce newlines between arguments at function declarations/definitions,
# enclosing ')' belongs in the last line
nl_func_decl_args = force
nl_func_def_args = force
nl_func_decl_end = remove
# Enforce the right spacing inside/around/after ( ) in typedefs and
# function calls
sp_inside_tparen = remove
sp_func_call_paren = force
sp_after_tparen_close = force
# Also enforce the correct multiline-ness of function
# definitions/declarations/calls
nl_func_decl_args = force
nl_func_def_args = force
nl_func_decl_end = remove
nl_func_call_end = remove
nl_func_call_empty = remove
# Add stars at the beginning of each line in multiline comments
cmt_star_cont = true
# Remove space between glib/gettext i18n function shortcuts and (
set func_call_user _ C_ I_ N_ NC_ P_ Q_
sp_func_call_user_paren = remove
#################################################################################
# IGNORES
#
# The second part of this file controls what Uncrustify ignores.
#################################################################################
# Disable auto-alignment of macros, we often manually align the \ with
# spaces which uncrustify doesn't support.
align_nl_cont = 0
# Ignore spacing in multiline comments.
cmt_indent_multi = false
# Ignore space after casts like `(int)foo`
sp_after_cast = ignore
# Ignore spaces after ; in for (; ; ;) statements.
sp_after_semi_for = ignore
sp_after_semi_for_empty = ignore
# Ignore Space after ! (not) operator, for example:
#
# if (!home) {
#
sp_not = ignore
# Ignore space around preprocessor '##' operator. We might want a space before
# and no space after, for example in this:
#
# #define trace(message, ...) \
# g_debug (message, ##__VA_ARGS__)
#
sp_pp_concat = ignore
|