#
# My favorite format ("--update-config-with-doc")
#
# $Id: mod-paren.cfg 803 2007-07-25 00:36:25Z bengardner $
#


#
# General options
#

# The type of line endings
newlines                      = lf       # auto/lf/crlf/cr

# The original size of tabs in the input
input_tab_size                = 8        # number

# The size of tabs in the output (only used if align_with_tabs=true)
output_tab_size               = 3        # number

# The ascii value of the string escape char, usually 92 (\). (Pawn)
string_escape_char            = 92       # number

#
# Indenting
#

# The number of columns to indent per level (usually 2, 3, 4, or 8)
indent_columns                = 3        # number

# How to use tabs when indenting code
# 0=spaces only
# 1=indent with tabs, align with spaces
# 2=indent and align with tabs
indent_with_tabs              = 0        # number

# Whether to indent strings broken by '\' so that they line up
indent_align_string           = true    # false/true

# Spaces to indent '{' from level
indent_brace                  = 0        # number

# Whether braces are indented to the body level
indent_braces                 = false    # false/true

# Indent based on the size of the brace parent, ie 'if' => 3 spaces, 'for' => 4 spaces, etc.
indent_brace_parent           = false    # false/true

# Whether the 'namespace' body is indented
indent_namespace              = false    # false/true

# Whether the 'class' body is indented
indent_class                  = true     # false/true

# Whether to indent the stuff after a leading class colon
indent_class_colon            = false    # false/true

# Whether to indent continued function call parameters one indent level (true) or aligns instead of indent (false)
indent_func_call_param        = false    # false/true

# The number of spaces to indent a continued '->' or '.'
# Usually set to indent_columns.
indent_member                 = 3        # number

# Spaces to indent 'case' from 'switch'
indent_switch_case            = 0        # number

# Spaces to indent '{' from 'case'
indent_case_brace             = 0        # number

# Whether to indent comments found in first column
indent_col1_comment           = false    # false/true

# How to indent goto labels (>0=absolute column where 1 is the leftmost column, <=0=subtract from brace indent)
indent_label                  = 1        # number

# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
indent_paren_nl               = false    # false/true

# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
indent_square_nl              = false    # false/true

#
# Spacing options
#

# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
sp_arith                      = force    # ignore/add/remove/force

# Add or remove space around assignment operator '=', '+=', etc
sp_assign                     = force    # ignore/add/remove/force

# Add or remove space around boolean operators '&&' and '||'
sp_bool                       = force    # ignore/add/remove/force

# Add or remove space around compare operator '<', '>', '==', etc
sp_compare                    = force    # ignore/add/remove/force

# Add or remove space inside '(' and ')'
sp_inside_paren               = remove   # ignore/add/remove/force

# Add or remove space between nested parens
sp_paren_paren                = remove   # ignore/add/remove/force

# Add or remove space between ')' and '{'
sp_paren_brace                = ignore   # ignore/add/remove/force

# Add or remove space before pointer star '*'
sp_before_ptr_star            = force    # ignore/add/remove/force

# Add or remove space between pointer stars '*'
sp_between_ptr_star           = remove   # ignore/add/remove/force

# Add or remove space after pointer star '*'
sp_after_ptr_star             = remove   # ignore/add/remove/force

# Add or remove space before reference sign '&'
sp_before_byref               = remove   # ignore/add/remove/force

# Add or remove space after reference sign '&'
sp_after_byref                = ignore   # ignore/add/remove/force

# Add or remove space before '<>'
sp_before_angle               = force    # ignore/add/remove/force

# Add or remove space after '<>'
sp_after_angle                = force    # ignore/add/remove/force

# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
sp_before_sparen              = force    # ignore/add/remove/force

# Add or remove space inside if-condition '(' and ')'
sp_inside_sparen              = remove   # ignore/add/remove/force

# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
sp_after_sparen               = force    # ignore/add/remove/force

# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
sp_sparen_brace               = add      # ignore/add/remove/force

# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
sp_special_semi               = ignore   # ignore/add/remove/force

# Add or remove space before ';'
sp_before_semi                = remove   # ignore/add/remove/force

# Add or remove space before '[' (except '[]')
sp_before_square              = ignore   # ignore/add/remove/force

# Add or remove space before '[]'
sp_before_squares             = ignore   # ignore/add/remove/force

# Add or remove space inside '[' and ']'
sp_inside_square              = remove   # ignore/add/remove/force

# Add or remove space after ','
sp_after_comma                = force    # ignore/add/remove/force

# Add or remove space between 'operator' and operator sign
sp_after_operator             = ignore   # ignore/add/remove/force

# Add or remove space after cast
sp_after_cast                 = remove   # ignore/add/remove/force

# Add or remove space between 'sizeof' and '('
sp_sizeof_paren               = remove   # ignore/add/remove/force

# Add or remove space after the tag keyword (Pawn)
sp_after_tag                  = ignore   # ignore/add/remove/force

# Add or remove space inside enum '{' and '}'
sp_inside_braces_enum         = force    # ignore/add/remove/force

# Add or remove space inside struct/union '{' and '}'
sp_inside_braces_struct       = force    # ignore/add/remove/force

# Add or remove space inside '{' and '}'
sp_inside_braces              = force    # ignore/add/remove/force

# Add or remove space inside '<' and '>'
sp_inside_angle               = remove   # ignore/add/remove/force

# Add or remove space between return type and function name (a minimum of 1 is forced except for pointer return types)
sp_type_func                  = ignore   # ignore/add/remove/force

# Add or remove space between function name and '(' on function declaration
sp_func_proto_paren           = remove   # ignore/add/remove/force

# Add or remove space between function name and '(' on function definition
sp_func_def_paren             = remove   # ignore/add/remove/force

# Add or remove space inside empty function '()'
sp_inside_fparens             = ignore   # ignore/add/remove/force

# Add or remove space inside function '(' and ')'
sp_inside_fparen              = remove   # ignore/add/remove/force

# Add or remove space between ']' and '(' when part of a function call.
sp_square_fparen              = ignore   # ignore/add/remove/force

# Add or remove space between ')' and '{' of function
sp_fparen_brace               = add      # ignore/add/remove/force

# Add or remove space between function name and '(' on function calls
sp_func_call_paren            = remove   # ignore/add/remove/force

# Add or remove space between a constructor/destructor and the open paren
sp_func_class_paren           = remove   # ignore/add/remove/force

# Add or remove space between 'return' and '('
sp_return_paren               = remove   # ignore/add/remove/force

# Add or remove space between macro and value
sp_macro                      = ignore   # ignore/add/remove/force

# Add or remove space between macro function ')' and value
sp_macro_func                 = ignore   # ignore/add/remove/force

# Add or remove space between 'else' and '{' if on the same line
sp_else_brace                 = ignore   # ignore/add/remove/force

# Add or remove space between '}' and 'else' if on the same line
sp_brace_else                 = ignore   # ignore/add/remove/force

#
# Code alignment (not left column spaces/tabs)
#

# Whether to keep non-indenting tabs
align_keep_tabs               = false    # false/true

# Whether to use tabs for alinging
align_with_tabs               = false    # false/true

# Whether to bump out to the next tab when aligning
align_on_tabstop              = false    # false/true

# Whether to left-align numbers
align_number_left             = true     # false/true

align_func_params = true

# The span for aligning variable definitions (0=don't align)
align_var_def_span            = 1        # number

# Whether the pointer star is part of the variable name or not
align_var_def_star_style      = 1        # number

# The threshold for aligning variable definitions (0=no limit)
align_var_def_thresh          = 12       # number

# Whether to align the colon in struct bit fields
align_var_def_colon           = true     # false/true

# Whether to align inline struct/enum/union variable definitions
align_var_def_inline          = true     # false/true

# The span for aligning on '=' in assignments (0=don't align)
align_assign_span             = 1        # number

# The threshold for aligning on '=' in assignments (0=no limit)
align_assign_thresh           = 12       # number

# The span for aligning on '=' in enums (0=don't align)
align_enum_equ_span           = 16       # number

# The threshold for aligning on '=' in enums (0=no limit)
align_enum_equ_thresh         = 0        # number

# The span for aligning struct/union (0=don't align)
align_var_struct_span         = 99       # number

# The span for aligning struct initializer values (0=don't align)
align_struct_init_span        = 3        # number

# The minimum space between the type and the synonym of a typedef
align_typedef_gap             = 3        # number

# The span for aligning single-line typedefs (0=don't align)
align_typedef_span            = 5        # number

# Controls the positioning of the '*' in typedefs. Just try it.
# 0: Align on typdef type, ignore '*'
# 1: The '*' is part of type name: typedef int  *pint;
# 2: The '*' is part of the type: typedef int *  pint;
align_typedef_star_style      = 0        # number

# The span for aligning comments that end lines (0=don't align)
align_right_cmt_span          = 3        # number

# The span for aligning function prototypes (0=don't align)
align_func_proto_span         = 0        # number

# Whether to align macros wrapped with a backslash and a newline
align_nl_cont                 = true     # false/true

# The minimum space between label and value of a preprocessor define
align_pp_define_gap           = 4        # number

# The span for aligning on '#define' bodies (0=don't align)
align_pp_define_span          = 3        # number

#
# Newline adding and removing options
#

# Try to limit code width to N number of columns
code_width                    = 0        # number

# Whether to collapse empty blocks between '{' and '}'
nl_collapse_empty_body        = false    # false/true

# Don't touch one-line function bodies inside a class xx { } body
nl_class_leave_one_liners     = true     # false/true

# Add or remove newlines at the start of the file
nl_start_of_file              = remove   # ignore/add/remove/force

# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
nl_start_of_file_min          = 0        # number

# Add or remove newline at the end of the file
nl_end_of_file                = force    # ignore/add/remove/force

# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
nl_end_of_file_min            = 1        # number

# Add or remove newline between '=' and '{'
nl_assign_brace               = add      # ignore/add/remove/force

# The number of newlines after a block of variable definitions
nl_func_var_def_blk           = 1        # number

# Add or remove newline between function call and '('
nl_fcall_brace                = add      # ignore/add/remove/force

# Add or remove newline between 'enum' and '{'
nl_enum_brace                 = add      # ignore/add/remove/force

# Add or remove newline between 'struct and '{'
nl_struct_brace               = add      # ignore/add/remove/force

# Add or remove newline between 'union' and '{'
nl_union_brace                = add      # ignore/add/remove/force

# Add or remove newline between 'if' and '{'
nl_if_brace                   = add      # ignore/add/remove/force

# Add or remove newline between '}' and 'else'
nl_brace_else                 = add      # ignore/add/remove/force

# Add or remove newline between 'else if' and '{'
# If set to ignore, nl_if_brace is used instead
nl_elseif_brace               = ignore   # ignore/add/remove/force

# Add or remove newline between 'else' and '{'
nl_else_brace                 = add      # ignore/add/remove/force

# Add or remove newline between 'for' and '{'
nl_for_brace                  = add      # ignore/add/remove/force

# Add or remove newline between 'while' and '{'
nl_while_brace                = add      # ignore/add/remove/force

# Add or remove newline between 'do' and '{'
nl_do_brace                   = add      # ignore/add/remove/force

# Add or remove newline between '}' and 'while' of 'do' statement
nl_brace_while                = remove   # ignore/add/remove/force

# Add or remove newline between 'switch' and '{'
nl_switch_brace               = add      # ignore/add/remove/force

# Whether to put a newline before 'case' statement
nl_before_case                = true     # false/true

# Whether to put a newline after 'case' statement
nl_after_case                 = true     # false/true

# Newline between namespace and {
nl_namespace_brace            = ignore   # ignore/add/remove/force

# Add or remove newline between 'template<>' and 'class'
nl_template_class             = ignore   # ignore/add/remove/force

# Add or remove newline between 'class' and '{'
nl_class_brace                = ignore   # ignore/add/remove/force

# Add or remove newline after each ',' in the constructor member initialization
nl_class_init_args            = ignore   # ignore/add/remove/force

# Add or remove newline between return type and function name in definition
nl_func_type_name             = ignore   # ignore/add/remove/force

# Add or remove newline after '(' in a function declaration
nl_func_decl_start            = ignore   # ignore/add/remove/force

# Add or remove newline after each ',' in a function declaration
nl_func_decl_args             = ignore   # ignore/add/remove/force

# Add or remove newline before the ')' in a function declaration
nl_func_decl_end              = ignore   # ignore/add/remove/force

# Add or remove newline between function signature and '{'
nl_fdef_brace                 = add      # ignore/add/remove/force

# Whether to put a newline after 'return' statement
nl_after_return               = true     # false/true

# Whether to put a newline after semicolons, except in 'for' statements
nl_after_semicolon            = true     # false/true

# Whether to put a newline after brace open
nl_after_brace_open           = true     # false/true

# Whether to alter newlines in '#define' macros
nl_define_macro               = false    # false/true

# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
nl_squeeze_ifdef              = true     # false/true

#
# Positioning options
#

# The position of boolean operators in wrapped expressions
pos_bool                      = trail    # ignore/lead/trail

# The position of colons between constructor and member initialization
pos_class_colon               = ignore   # ignore/lead/trail

#
# Blank line options
#

# The maximum consecutive newlines
nl_max                        = 4        # number

# The number of newlines after a function prototype, if followed by another function prototype
nl_after_func_proto           = 0        # number

# The number of newlines after a function prototype, if not followed by another function prototype
nl_after_func_proto_group     = 2        # number

# The number of newlines after '}' of the function body
nl_after_func_body            = 2        # number

# The minimum number of newlines before a multi-line comment (doesn't apply if after a brace open)
nl_before_block_comment       = 2        # number

# Whether to remove blank lines after '{'
eat_blanks_after_open_brace   = true     # false/true

# Whether to remove blank lines before '}'
eat_blanks_before_close_brace = true     # false/true

#
# Code modifying options (non-whitespace)
#

# Add or remove braces on single-line 'do' statement
mod_full_brace_do             = add      # ignore/add/remove/force

# Add or remove braces on single-line 'for' statement
mod_full_brace_for            = add      # ignore/add/remove/force

# Add or remove braces on single-line function defintions. (Pawn)
mod_full_brace_function       = ignore   # ignore/add/remove/force

# Add or remove braces on single-line 'if' statement
mod_full_brace_if             = add      # ignore/add/remove/force

# Don't remove braces around statements that span N newlines
mod_full_brace_nl             = 0        # number

# Add or remove braces on single-line 'while' statement
mod_full_brace_while          = add      # ignore/add/remove/force

# Add or remove unnecessary paren on 'return' statement
mod_paren_on_return           = remove   # ignore/add/remove/force

# Whether to change optional semicolons to real semicolons
mod_pawn_semicolon            = false    # false/true

#
# Comment modifications
#

# Whether to group cpp-comments that look like they are in a block
cmt_cpp_group                 = false    # false/true

# Whether to put an empty '/*' on the first line of the combined cpp-comment
cmt_cpp_nl_start              = false    # false/true

# Whether to put a newline before the closing '*/' of the combined cpp-comment
cmt_cpp_nl_end                = false    # false/true

# Whether to change cpp-comments into c-comments
cmt_cpp_to_c                  = false    # false/true

# Whether to put a star on subsequent comment lines
cmt_star_cont                 = true     # false/true

#
# Preprocessor options
#

# Add or remove indent of preprocessor directives
pp_indent                     = ignore   # ignore/add/remove/force

# Add or remove space between # and, say, define
pp_space                      = ignore   # ignore/add/remove/force

nl_getset_brace = force

mod_full_paren_if_bool = true

