--vertical-tightness=2
--weld-nested-containers
+==> b1461.in <==
+ $C_sigmas = sub { [
+ $a3::COMMON, $a3::Offset{lcount} + 47 ] };
+
+ $C_sigmas = sub
+ { [ $a3::COMMON, $a3::Offset{lcount} + 47 ] };
+
+==> b1461.par <==
+--maximum-line-length=68
+--continuation-indentation=9
+--weld-nested-containers
+--want-break-before='='
+--opening-anonymous-sub-brace-on-new-line
+
==> b148.in <==
# state 1
@yydgoto=(
return;
}
+ my $len_assignment = 0;
+
my $ris_bli_container = $self->[_ris_bli_container_];
my $is_bli = $ris_bli_container->{$type_sequence_j};
my $lev = $levels_to_go[$i_start];
if ( $lev > $rLL->[$Kj]->[_LEVEL_] ) { return }
}
- }
+ # include a length of any preceding assignment token if we break before
+ # it (b1461)
+ elsif ( $i_start > 0 ) {
+ my $i_eq = $i_start - 1;
+ if ( $types_to_go[$i_eq] eq 'b' && $i_eq > 0 ) { $i_eq--; }
+ my $type_eq = $types_to_go[$i_eq];
+ if ( $is_assignment{$type_eq} && $want_break_before{$type_eq} ) {
+
+ # We need to keep i_start unchanged because later logic will
+ # look at the block type of $i_start. So rather than change
+ # i_start we will define a tolerance.
+ # ( summed_lengths_to_go = length from start of token )
+ $len_assignment = $summed_lengths_to_go[$i_start] -
+ $summed_lengths_to_go[$i_eq];
+ }
+ }
+ }
elsif ( $previous_nonblank_token eq ')' ) {
# For something like "if (xxx) {", the keyword "if" will be
my $excess = $pos + 1 + $container_length - $maximum_line_length;
+ # include length of a preceding assignment which will be on this line
+ $excess += $len_assignment;
+
# Add a small tolerance for welded tokens (case b901)
if ( $total_weld_count && $self->is_welded_at_seqno($type_sequence_j) ) {
$excess += 2;