Blob Blame History Raw
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2, or (at your option)
#  any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
#  Allman style
#

# indent using tabs
output_tab_size                          = 4
indent_columns                           = output_tab_size
indent_with_tabs                         = 0

# indent case
indent_switch_case                       = indent_columns
indent_case_brace                        = 0

# newlines
newlines                                 = lf
nl_after_semicolon                       = true
nl_start_of_file                         = remove
nl_end_of_file                           = force
nl_end_of_file_min                       = 1

# spaces
sp_return_paren                          = force      # "return (1);" vs "return(1);"
sp_sizeof_paren                          = force      # "sizeof (int)" vs "sizeof(int)"
sp_assign                                = force
sp_arith                                 = force
sp_bool                                  = force
sp_compare                               = force
sp_after_comma                           = force
sp_case_label                            = force
sp_else_brace                            = force
sp_brace_else                            = force
sp_func_call_paren                       = force      # "foo (" vs "foo("
sp_func_proto_paren                      = force      # "int foo ();" vs "int foo();"
sp_before_ptr_star                       = force
sp_after_ptr_star_qualifier              = force      # "const char * const" vs. "const char *const"
sp_after_ptr_star                        = remove
sp_between_ptr_star                      = remove     # "**var" vs "* *var"
sp_inside_paren                          = remove     # "( 1 )" vs "(1)"
sp_inside_fparen                         = remove     # "( 1 )" vs "(1)" - functions
sp_inside_sparen                         = remove     # "( 1 )" vs "(1)" - if/for/etc
sp_after_cast                            = force     # "(int) a" vs "(int)a"
sp_func_call_user_paren                  = remove     # For gettext, "_()" vs. "_ ()"
set func_call_user _ N_ C_                            # Needed for sp_after_cast
sp_before_semi                           = remove
sp_paren_paren                           = remove     # Space between (( and ))

eat_blanks_before_close_brace            = true
eat_blanks_after_open_brace              = true

# Allman style for curly braces
nl_assign_brace                          = force
nl_enum_brace                            = force
nl_union_brace                           = force
nl_struct_brace                          = force
nl_class_brace                           = force
nl_do_brace                              = force
nl_if_brace                              = force
nl_for_brace                             = force
nl_else_brace                            = force
nl_elseif_brace                          = force
nl_while_brace                           = force
nl_switch_brace                          = force
nl_before_case                           = true
nl_fcall_brace                           = force
nl_fdef_brace                            = force
nl_brace_else                            = force
nl_brace_while                           = force
nl_case_colon_brace                      = force
nl_after_brace_open                      = true

# Function calls and parameters
nl_func_paren                            = remove
nl_func_def_paren                        = remove
nl_func_decl_start                       = remove
nl_func_def_start                        = remove
nl_func_decl_args                        = force
nl_func_def_args                         = force
nl_func_decl_end                         = remove
nl_func_def_end                          = remove

# Code modifying options (non-whitespace)
mod_full_brace_do                        = force
mod_full_brace_for                       = force
mod_full_brace_function                  = force
mod_full_brace_if                        = force
mod_full_brace_while                     = force
mod_case_brace                           = force
mod_remove_extra_semicolon               = true

# Align
align_func_params                        = true
align_single_line_func                   = true
align_var_def_star_style                 = 2

# one liners
nl_func_leave_one_liners                 = true
nl_enum_leave_one_liners                 = true
nl_assign_leave_one_liners               = true

# Comments
cmt_cpp_to_c                             = true       # "/* */" vs. "//"
cmt_convert_tab_to_spaces                = true
#cmt_reflow_mode                         = 2          # Full reflow (seems doesn't work quite well, it doesn't reorder the comments)
#cmt_width                               = 80         # Line width
cmt_star_cont                            = true       # Whether to put a star on subsequent comment lines
cmt_sp_after_star_cont                   = 1          # The number of spaces to insert after the star on subsequent comment lines
cmt_c_nl_start                           = false      # false/true
cmt_c_nl_end                             = true       # false/true
# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
# the comment are the same length. Default=True
cmt_multi_check_last                     = false

# Encoding
utf8_bom                                 = remove
utf8_force                               = true