From d3730869c2402bdb471f0fab044554d39715e04e Mon Sep 17 00:00:00 2001 From: Steve Hancock Date: Sat, 27 Jun 2020 20:01:46 -0700 Subject: [PATCH] removed unused routine --- lib/Perl/Tidy/VerticalAligner.pm | 207 ------------------------------- 1 file changed, 207 deletions(-) diff --git a/lib/Perl/Tidy/VerticalAligner.pm b/lib/Perl/Tidy/VerticalAligner.pm index 3a42d408..0c5561dd 100644 --- a/lib/Perl/Tidy/VerticalAligner.pm +++ b/lib/Perl/Tidy/VerticalAligner.pm @@ -2644,213 +2644,6 @@ sub decode_alignment_token { } } -sub OLD_delete_unmatched_tokens { - my ($rlines) = @_; - - # This is a preliminary step in vertical alignment in which we remove as - # many obviously un-needed alignment tokens as possible. This will prevent - # them from interfering with the final alignment. - - return unless @{$rlines} > 1; - - my $has_terminal_match = $rlines->[-1]->get_j_terminal_match(); - - # ignore hanging side comments in these operations - my @filtered = grep { !$_->{_is_hanging_side_comment} } @{$rlines}; - my $rnew_lines = \@filtered; - my @i_equals; - my @min_levels; - - my $jmax = @{$rnew_lines} - 1; - return unless $jmax >= 0; - - my %is_good_tok; - - # create a hash of tokens for each line - my $rline_hashes = []; - my $saw_list_type; - foreach my $line ( @{$rnew_lines} ) { - my $rhash = {}; - my $rtokens = $line->get_rtokens(); - if ( !$saw_list_type && $line->get_list_type() ) { $saw_list_type = 1 } - my $i = 0; - my $i_eq; - my $lev_min; - foreach my $tok ( @{$rtokens} ) { - my ( $raw_tok, $lev, $tag, $tok_count ) = - decode_alignment_token($tok); - if ( !defined($lev_min) || $lev < $lev_min ) { $lev_min = $lev } - - # Possible future upgrade: for multiple matches, - # record [$i1, $i2, ..] instead of $i - $rhash->{$tok} = - [ $i, undef, undef, $raw_tok, $lev, $tag, $tok_count ]; - - # remember the first equals at line level - if ( !defined($i_eq) && $raw_tok eq '=' ) { - if ( $lev eq $group_level ) { $i_eq = $i } - } - $i++; - } - push @{$rline_hashes}, $rhash; - push @i_equals, $i_eq; - push @min_levels, $lev_min; - } - - # compare each line pair and record matches - my $rtok_hash = {}; - my $nr = 0; - for ( my $jl = 0 ; $jl < $jmax ; $jl++ ) { - my $nl = $nr; - $nr = 0; - my $jr = $jl + 1; - my $rhash_l = $rline_hashes->[$jl]; - my $rhash_r = $rline_hashes->[$jr]; - my $count = 0; # UNUSED NOW? - my $ntoks = 0; - foreach my $tok ( keys %{$rhash_l} ) { - $ntoks++; - if ( defined( $rhash_r->{$tok} ) ) { - if ( $tok ne '#' ) { $count++; } - my $il = $rhash_l->{$tok}->[0]; - my $ir = $rhash_r->{$tok}->[0]; - $rhash_l->{$tok}->[2] = $ir; - $rhash_r->{$tok}->[1] = $il; - if ( $tok ne '#' ) { - push @{ $rtok_hash->{$tok} }, ( $jl, $jr ); - $nr++; - } - } - } - - # Set a line break if no matching tokens between these lines - if ( $nr == 0 && $nl > 0 ) { - $rnew_lines->[$jl]->{_end_group} = 1; - } - } - - # find subgroups - my @subgroups; - push @subgroups, [ 0, $jmax ]; - for ( my $jl = 0 ; $jl < $jmax ; $jl++ ) { - if ( $rnew_lines->[$jl]->{_end_group} ) { - $subgroups[-1]->[1] = $jl; - push @subgroups, [ $jl + 1, $jmax ]; - } - } - - # Loop to process each subgroups - foreach my $item (@subgroups) { - my ( $jbeg, $jend ) = @{$item}; - - # look for complete ternary or if/elsif/else blocks - my $nlines = $jend - $jbeg + 1; - my %token_line_count; - for ( my $jj = $jbeg ; $jj <= $jend ; $jj++ ) { - my %seen; - my $line = $rnew_lines->[$jj]; - my $rtokens = $line->get_rtokens(); - foreach my $tok ( @{$rtokens} ) { - if ( !$seen{$tok} ) { - $seen{$tok}++; - $token_line_count{$tok}++; - } - } - } - - # Look for if/else/elsif and ternary blocks - my $is_full_block; - foreach my $tok ( keys %token_line_count ) { - if ( $token_line_count{$tok} == $nlines ) { - if ( $tok =~ /^\?/ || $tok =~ /^\{\d+if/ ) { - $is_full_block = 1; - } - } - } - - # remove unwanted alignment tokens - for ( my $jj = $jbeg ; $jj <= $jend ; $jj++ ) { - my $line = $rnew_lines->[$jj]; - my $rtokens = $line->get_rtokens(); - my $rhash = $rline_hashes->[$jj]; - my $i_eq = $i_equals[$jj]; - my @idel; - my $imax = @{$rtokens} - 2; - my $delete_above_level; - - for ( my $i = 0 ; $i <= $imax ; $i++ ) { - my $tok = $rtokens->[$i]; - next if ( $tok eq '#' ); # shouldn't happen - my ( $iii, $il, $ir, $raw_tok, $lev, $tag, $tok_count ) = - @{ $rhash->{$tok} }; - - # always remove unmatched tokens - my $delete_me = !defined($il) && !defined($ir); - - # also, if this is a complete ternary or if/elsif/else block, - # remove all alignments which are not also in every line - $delete_me ||= - ( $is_full_block && $token_line_count{$tok} < $nlines ); - - # Remove all tokens above a certain level following a previous - # deletion. For example, we have to remove tagged higher level - # alignment tokens following a => deletion because the tags of - # higher level tokens will now be incorrect. For example, this - # will prevent aligning commas as follows after deleting the - # second => - # $w->insert( - # ListBox => origin => [ 270, 160 ], - # size => [ 200, 55 ], - # ); - if ( defined($delete_above_level) ) { - if ( $lev > $delete_above_level ) { - $delete_me ||= 1; #$tag; - } - else { $delete_above_level = undef } - } - - if ( - $delete_me - && is_deletable_token( $tok, $i, $imax, $jj, $i_eq ) - - # Patch: do not touch the first line of a terminal match, - # such as below, because j_terminal has already been set. - # if ($tag) { $tago = "<$tag>"; $tagc = ""; } - # else { $tago = $tagc = ''; } - # But see snippets 'else1.t' and 'else2.t' - && !( $jj == $jbeg && $has_terminal_match && $nlines == 2 ) - - ) - { - push @idel, $i; - if ( !defined($delete_above_level) - || $lev < $delete_above_level ) - { - - # delete all following higher level alignments - $delete_above_level = $lev; - - # but keep deleting after => to next lower level - # to avoid some bizarre alignments - if ( $raw_tok eq '=>' ) { - $delete_above_level = $lev - 1; - } - } - } - } - - if (@idel) { - delete_selected_tokens( $line, \@idel, $saw_list_type ); - } - } - - } # End loop over subgroups - - fix_ragged_matches($rlines) if ($saw_list_type); - - return; -} - sub delete_unmatched_tokens { my ($rlines) = @_; -- 2.39.5