Subject: | Missing module output difficult to process in Komodo |
ActivePerl 5.10.0 build 1004 [287188] on Windows.
Komodo looks for certain patterns in Perl files so it can highlight
error messages to the user. This fails when using Test::Depends in the
following ways:
#1. Error messages are in terms of the eval'ed text, and not the user
code. I fixed this like so:
} else {
+ my @callerInfo = caller();
+ my $callerLine = "at $callerInfo[1] line $callerInfo[2]";
$@ =~ s{at Test::Depends generated line \d+}{$callerLine}g;
# print STDERR "\n\n{{\n$@}\n";
push @missing, "$package", $@;
}
#2. Test::Depends varies its output depending on whether it's talking to
a terminal. I don't understand why the distinction. Removing
the 'if (-t STDOUT)' test and the else block solved this problem.
#3. Exit status -- If this module decides to exit the process, it
should be with a status of 1, if not at least 2 (assuming that
status 1 is for usage errors). Komodo looks for the line at
the end, and if it sees
"bug82909b-badlib.pl syntax OK"
it assumes there are no error messages in the program.
I'm not sure what's behind the decisions in parts 2 and 3,
but they've made it hard for Komodo to detect problems, and
frustrating for Komodo customers who rely on its syntax-error
detection to help them out.
Thanks,
Eric