From: Steve Hancock Date: Wed, 22 Mar 2023 14:41:55 +0000 (-0700) Subject: simplify diagnostics object X-Git-Tag: 20230309.02~5 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f258c7da5ceb978d03669fcb74753d42bf0444a4;p=perltidy.git simplify diagnostics object Previously, the diagnostics object made a call back to the tokenizer to get the input line number. Now the line number arrives as an optional arg. --- diff --git a/lib/Perl/Tidy/Diagnostics.pm b/lib/Perl/Tidy/Diagnostics.pm index 4d9b6b19..f65d4cea 100644 --- a/lib/Perl/Tidy/Diagnostics.pm +++ b/lib/Perl/Tidy/Diagnostics.pm @@ -12,9 +12,6 @@ # scanned at once for some particular condition of interest. It was # particularly useful for developing guessing strategies. # -# NOTE: This feature is deactivated in final releases but can be -# reactivated for debugging by un-commenting the 'I' options flag -# ##################################################################### package Perl::Tidy::Diagnostics; @@ -69,13 +66,22 @@ sub set_input_file { } sub write_diagnostics { - my ( $self, $msg ) = @_; + my ( $self, $msg, $line_number ) = @_; + + # Write a message to the diagnostics file + # Input parameters: + # $msg = string describing the event + # $line_number = optional line number unless ( $self->{_write_diagnostics_count} ) { open( $self->{_fh}, ">", "DIAGNOSTICS" ) or Perl::Tidy::Die("couldn't open DIAGNOSTICS: $ERRNO\n"); } + if ( defined($line_number) ) { + $msg = "$line_number:\t$msg"; + } + my $fh = $self->{_fh}; my $last_diagnostic_file = $self->{_last_diagnostic_file}; my $input_file = $self->{_input_file}; @@ -83,11 +89,9 @@ sub write_diagnostics { $fh->print("\nFILE:$input_file\n"); } $self->{_last_diagnostic_file} = $input_file; - my $input_line_number = Perl::Tidy::Tokenizer::get_input_line_number(); - $fh->print("$input_line_number:\t$msg"); + $fh->print($msg); $self->{_write_diagnostics_count}++; return; } 1; - diff --git a/lib/Perl/Tidy/Formatter.pm b/lib/Perl/Tidy/Formatter.pm index b6052a62..cccb27f4 100644 --- a/lib/Perl/Tidy/Formatter.pm +++ b/lib/Perl/Tidy/Formatter.pm @@ -1282,10 +1282,11 @@ sub check_token_array { return; } + # Available for debugging but not currently used: sub write_diagnostics { - my ($msg) = @_; + my ( $msg, $line_number ) = @_; if ($diagnostics_object) { - $diagnostics_object->write_diagnostics($msg); + $diagnostics_object->write_diagnostics( $msg, $line_number ); } return; } ## end sub write_diagnostics diff --git a/lib/Perl/Tidy/Tokenizer.pm b/lib/Perl/Tidy/Tokenizer.pm index e12807ca..50c85f17 100644 --- a/lib/Perl/Tidy/Tokenizer.pm +++ b/lib/Perl/Tidy/Tokenizer.pm @@ -626,11 +626,13 @@ sub get_unexpected_error_count { return $self->[_unexpected_error_count_]; } -# interface to Perl::Tidy::Diagnostics routines +# Interface to Perl::Tidy::Diagnostics sub write_diagnostics { - my $msg = shift; - if ( $tokenizer_self->[_diagnostics_object_] ) { - $tokenizer_self->[_diagnostics_object_]->write_diagnostics($msg); + my ($msg) = @_; + my $input_line_number = $tokenizer_self->[_last_line_number_]; + my $diagnostics_object = $tokenizer_self->[_diagnostics_object_]; + if ($diagnostics_object) { + $diagnostics_object->write_diagnostics( $msg, $input_line_number ); } return; } ## end sub write_diagnostics