Perl::Lintのviolationsを見やすく整形して表示するツール等をかいてみた
ここ最近、moznionのつくっているPerl::Lintを触っている。
Perl::Lintという物について端的に言ってしまうと、Perlでかかれたコードの中からダメな部分(=violationsという)を指摘してくれる機能を提供する「お節介焼きライブラリ」なんだけど、このツールの解析結果をいい感じに表示してくれる「レポーター」と呼べるようなものが存在しなかったので、つくってみた。-> Perl::Lint::Reporter
Perl::Lint::Reporter 使い方等
使い方は至って簡単。Perl::Lintで解析した結果をreport_violations()という関数に食わせるだけ。
use Perl::Lint qw/lint/;
use Perl::Lint::Reporter;
my $violations = lint(['/path/to/yourcode.pl', '/path/to/othercode.pl', ...]);
report_violations($violations);
出力例はこんな感じ(大きい画像はこちら)
なお、Perl::Lintと同じ目的のライブラリである(というかこっちが本家だった)Perl::Criticについても「レポーター」がパッと見つけられなかったので、書いてみた。-> Perl::Critic::Reporter
こっちも使い方はほぼ一緒で、Perl::Criticの解析結果をreport_critic()関数に食わせるだけ。(ほぼ一緒なのでコード例はリンク先を参照のこと)
Perl::LintとPerl::Criticの解析結果に関する差分レポートがほしい!!!
そして、Perl::LintはポリシーについてPerl::Criticと挙動が異なる部分があるらしい。そういった部分を簡単に発見できるように、violationsの差分をレポートしてくれるやつも書いてみた。-> Perl::Lint::Reporter::DiffWithCritic
これも使い方は簡単で、Perl::Lintの解析結果をreport_violations_diff()に食わせるだけ。
出力例(大きい画像はこちら)。
もしPerl::Lintを使って何かを解析したいと思ったとき、これらのツールはきっと役に立つんじゃないかと思う。役に立つといいな。
とくにPerl::Lint::Reporter::DiffWithCriticについては、Perl::Lintの解析性能改善にも一役買えるはず。よかったらつかってみてください。とはいえ、今のところどれもgithub止まりモジュールだったりするのですけど。
ちなみにPerl::Lintにはplaygroundなんかもあるみたいで、ちょい試したい向きには丁度良いのではないでしょうか。