All Your Bugs Are Belong To Ass

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-Reporter

なお、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-Reporter-DiffWithCritic

もしPerl::Lintを使って何かを解析したいと思ったとき、これらのツールはきっと役に立つんじゃないかと思う。役に立つといいな。

とくにPerl::Lint::Reporter::DiffWithCriticについては、Perl::Lintの解析性能改善にも一役買えるはず。よかったらつかってみてください。とはいえ、今のところどれもgithub止まりモジュールだったりするのですけど。

ちなみにPerl::Lintにはplaygroundなんかもあるみたいで、ちょい試したい向きには丁度良いのではないでしょうか。

Created at
by
ytnobody
Last modified at
2014-08-23 23:28
by
ytnobody