important_function();
}
-By default, this extra indentation occurs for blocks of type:
+By default, this extra indentation occurs for block types:
B<if>, B<elsif>, B<else>, B<unless>, B<while>, B<for>, B<foreach>, B<do>, and
also B<named subs> and blocks preceded by a B<label>. The next item shows how to
change this.
The default is B<-blil='if else elsif unless while for foreach do : sub'>.
-Note that this parameter controls the behavior of the B<-bli> flag but has no
-effect unless the B<-bli> flag is set.
+=item B<-blixl=s>, B<--brace-left-and-indent-exclusion-list=s>
+
+Use this parameter to exclude types of block braces for which the B<-bli> flag
+applies; see L<Specifying Block Types>.
+
+This might be useful in conjunction with selecting all blocks B<-blil='*'>.
+The default setting is B<-blixl=' '>, which does not exclude any blocks.
+
+Note that the two parameters B<-blil> and B<-blixl> control the behavior of
+the B<-bli> flag but have no effect unless the B<-bli> flag is set.
=item B<-bar>, B<--opening-brace-always-on-right>
########################################
$category = 2; # Code indentation control
########################################
- $add_option->( 'continuation-indentation', 'ci', '=i' );
- $add_option->( 'extended-continuation-indentation', 'xci', '!' );
- $add_option->( 'line-up-parentheses', 'lp', '!' );
- $add_option->( 'line-up-parentheses-exclusion-list', 'lpxl', '=s' );
- $add_option->( 'outdent-keyword-list', 'okwl', '=s' );
- $add_option->( 'outdent-keywords', 'okw', '!' );
- $add_option->( 'outdent-labels', 'ola', '!' );
- $add_option->( 'outdent-long-quotes', 'olq', '!' );
- $add_option->( 'indent-closing-brace', 'icb', '!' );
- $add_option->( 'closing-token-indentation', 'cti', '=i' );
- $add_option->( 'closing-paren-indentation', 'cpi', '=i' );
- $add_option->( 'closing-brace-indentation', 'cbi', '=i' );
- $add_option->( 'closing-square-bracket-indentation', 'csbi', '=i' );
- $add_option->( 'brace-left-and-indent', 'bli', '!' );
- $add_option->( 'brace-left-and-indent-list', 'blil', '=s' );
+ $add_option->( 'continuation-indentation', 'ci', '=i' );
+ $add_option->( 'extended-continuation-indentation', 'xci', '!' );
+ $add_option->( 'line-up-parentheses', 'lp', '!' );
+ $add_option->( 'line-up-parentheses-exclusion-list', 'lpxl', '=s' );
+ $add_option->( 'outdent-keyword-list', 'okwl', '=s' );
+ $add_option->( 'outdent-keywords', 'okw', '!' );
+ $add_option->( 'outdent-labels', 'ola', '!' );
+ $add_option->( 'outdent-long-quotes', 'olq', '!' );
+ $add_option->( 'indent-closing-brace', 'icb', '!' );
+ $add_option->( 'closing-token-indentation', 'cti', '=i' );
+ $add_option->( 'closing-paren-indentation', 'cpi', '=i' );
+ $add_option->( 'closing-brace-indentation', 'cbi', '=i' );
+ $add_option->( 'closing-square-bracket-indentation', 'csbi', '=i' );
+ $add_option->( 'brace-left-and-indent', 'bli', '!' );
+ $add_option->( 'brace-left-and-indent-list', 'blil', '=s' );
+ $add_option->( 'brace-left-and-indent-exclusion-list', 'blixl', '=s' );
########################################
$category = 3; # Whitespace control
$non_indenting_brace_pattern,
$bl_exclusion_pattern,
$bl_pattern,
+ $bli_exclusion_pattern,
$bli_pattern,
$block_brace_vertical_tightness_pattern,
$blank_lines_after_opening_block_pattern,
# default list of block types for which -bli would apply
my $bli_list_string = 'if else elsif unless while for foreach do : sub';
+ my $bli_exclusion_list_string = ' ';
if ( defined( $rOpts->{'brace-left-and-indent-list'} )
&& $rOpts->{'brace-left-and-indent-list'} )
}
$bli_pattern = make_block_pattern( '-blil', $bli_list_string );
+
+ if ( defined( $rOpts->{'brace-left-and-indent-exclusion-list'} )
+ && $rOpts->{'brace-left-and-indent-exclusion-list'} )
+ {
+ $bli_exclusion_list_string =
+ $rOpts->{'brace-left-and-indent-exclusion-list'};
+ }
+ $bli_exclusion_pattern =
+ make_block_pattern( '-blixl', $bli_exclusion_list_string );
return;
}
foreach my $seqno ( keys %{$rblock_type_of_seqno} ) {
my $block_type = $rblock_type_of_seqno->{$seqno};
- if ( $block_type && $block_type =~ /$bli_pattern/ ) {
+ if ( $block_type
+ && $block_type =~ /$bli_pattern/
+ && $block_type !~ /$bli_exclusion_pattern/ )
+ {
$ris_bli_container->{$seqno} = 1;
$rbrace_left->{$seqno} = 1;
my $Ko = $K_opening_container->{$seqno};