# Configuration for formatting Tracker source code using the # 'uncrustify' indent tool. # # Run `uncrustify --show-config` to see documentation for these options. # # See also: https://wiki.gnome.org/Projects/Tracker/Documentation/CodingStyle ################################################################################# # 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 tabs to indent up to brace level, but spaces to align continuation # lines. For example: # # int main() { # --->printf ("This is a long string " # ---> "which continues onto a second line."); # }; # align_with_tabs = false indent_with_tabs = 1 # We align parameters in function definitions, like this: # # gdouble tracker_string_to_date (const gchar *date_string, # gint *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: # # tracker_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 Tracker's source code, for example we can keep this: # # tracker_string_to_date (const gchar *date_string, # gint *offset_p, # GError **error) # # Instead of it being changed to this: # # tracker_string_to_date (const gchar *date_string, # gint *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 # Ensure there is space between '*' and '(', e.g.: # typedef GNode* (* ForeachFunc) (...); sp_ptr_star_paren = remove # Remove spaces between '*', e.g.: # gchar **foo; sp_between_ptr_star = remove ################################################################################# # IGNORES # # The second part of this file controls what Uncrustify ignores. ################################################################################# # Disable auto-alignment of macros, we manually align the \ with # spaces which uncrustify doesn't support. align_nl_cont = false # Ignore spacing multiline comments. cmt_indent_multi = false # Ignore spacing around = operator (and -=, etc). sp_after_assign = ignore sp_before_assign = ignore # Ignore space after casts like `(int)foo` sp_after_cast = ignore # Ignore spacing around pointer stars. sp_after_ptr_star = ignore # Ignore spaces after ; in for (; ; ;) statements. sp_after_semi_for = ignore sp_after_semi_for_empty = ignore # Ignore spacing around ++ / -- operators. sp_incdec = 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