_radjusted_levels_ => $i++,
_this_batch_ => $i++,
+ _ris_special_identifier_token_ => $i++,
_last_output_short_opening_token_ => $i++,
_last_line_leading_type_ => $i++,
$self->[_this_batch_] = [];
# Memory of processed text...
+ $self->[_ris_special_identifier_token_] = {};
$self->[_last_last_line_leading_level_] = 0;
$self->[_last_line_leading_level_] = 0;
$self->[_last_line_leading_type_] = '#';
# one space max, and no tabs
$token =~ s/\s+/ /g;
$rtoken_vars->[_TOKEN_] = $token;
+
+ $self->[_ris_special_identifier_token_]->{$token} = 'sub';
+
}
# clean up spaces in package identifiers, like
{
$token =~ s/\s+/ /g;
$rtoken_vars->[_TOKEN_] = $token;
+
+ $self->[_ris_special_identifier_token_]->{$token} =
+ 'package';
+
}
# trim identifiers of trailing blanks which can occur
$self->store_token($rtoken_vars);
} # End token loop
+
return;
} ## end sub respace_tokens_inner_loop
# blank lines before subs except declarations and one-liners
elsif ( $leading_type eq 'i' ) {
- if (
-
- #FIXME: fix to work optimally for 'method'
- # quick check
- (
- substr( $leading_token, 0, 3 ) eq 'sub'
- || $rOpts_sub_alias_list
- )
-
- # slow check
- && $leading_token =~ /$SUB_PATTERN/
- )
- {
- $blank_count = $rOpts->{'blank-lines-before-subs'}
- if ( terminal_type_i( $imin, $imax ) !~ /^[\;\}\,]$/ );
- }
+ my $special_identifier =
+ $self->[_ris_special_identifier_token_]->{$leading_token};
+ if ($special_identifier) {
+ ## $leading_token =~ /$SUB_PATTERN/
+ if ( $special_identifier eq 'sub' ) {
+
+ $blank_count = $rOpts->{'blank-lines-before-subs'}
+ if (
+ terminal_type_i( $imin, $imax ) !~ /^[\;\}\,]$/ );
+ }
- # break before all package declarations
- elsif ( substr( $leading_token, 0, 8 ) eq 'package ' ) {
+ # break before all package declarations
+ ## substr( $leading_token, 0, 8 ) eq 'package '
+ elsif ( $special_identifier eq 'package' ) {
- # ... except in a very short eval block
- my $pseqno = $parent_seqno_to_go[$imin];
- $blank_count = $rOpts->{'blank-lines-before-packages'}
- if ( !$self->[_ris_short_broken_eval_block_]->{$pseqno} );
+ # ... except in a very short eval block
+ my $pseqno = $parent_seqno_to_go[$imin];
+ $blank_count = $rOpts->{'blank-lines-before-packages'}
+ if (
+ !$self->[_ris_short_broken_eval_block_]->{$pseqno}
+ );
+ }
}
}