2009.08.27 Thursday
僕は、下記のようにコードを揃えるのが好きだ。無意識のうちにそろえてしまうこともあるし、Perl ならperltidy とかで揃えている。今やっているお仕事でも同じように開発を行っていた。先日いくつかのコードを先方にレビューして頂いたのだが、先方のコーディング規約によると、こうやって揃えるのは規約違反だということだった。事前にコーディング規約を頂いているので、完全に僕のミスだ。さて、これを直さないといけないんだが、コードをそろえるためのツール(perltidy とか)はあっても、そろっているものをそうじゃなくするツールがすぐには見つからなかった。特に今回は、PHP だったのでperltidy も使えないし、かといって手で全部作業するのはモチベーション的にもキツいし、ミスも多そうだ。
そこで、先日紹介した「Lisp はわからないけどEmacs で選択範囲に対してごにょごにょしたい」と同じ方法で、正規表現で下記のコードを規約に従ったコードにするためのコードを書いた。
そろっているコード(いまのお仕事では規約違反)
規約に従ったコード
ちょっと書いてみると意外と一筋縄では行かなくて、単に=の両サイドだけ置換するような書き方では、最後の行(これはこのままで良い)まで置換されてしまう。なんとなく悔しかったので、_33rpm の力を借りてそれなりに奇麗なものを書いた。
gist: 175485 - GitHub
そこで、先日紹介した「Lisp はわからないけどEmacs で選択範囲に対してごにょごにょしたい」と同じ方法で、正規表現で下記のコードを規約に従ったコードにするためのコードを書いた。
そろっているコード(いまのお仕事では規約違反)
$row->topic_category_id = $topic_category_id;
$row->caption = $this->getData()->caption;
$row->description = $this->getData()->description;
$row->user_id = $user_id;
$row->uri_thumbnail = $uri_thumbnail_db;
$data = array(
'modified' => date('Y/m/d'),
'modified_by' => $this->user_id,
'status' => $this->status;
);
$this->view->options
= array(E3::Registry::getConfig()->label->selectOption);
規約に従ったコード
$row->topic_category_id = $topic_category_id;
$row->caption = $this->getData()->caption;
$row->description = $this->getData()->description;
$row->user_id = $user_id;
$row->uri_thumbnail = $uri_thumbnail_db;
$data = array(
'modified' => date('Y/m/d'),
'modified_by' => $this->user_id,
'status' => $this->status
);
$this->view->options
= array(E3::Registry::getConfig()->label->selectOption);
ちょっと書いてみると意外と一筋縄では行かなくて、単に=の両サイドだけ置換するような書き方では、最後の行(これはこのままで良い)まで置換されてしまう。なんとなく悔しかったので、_33rpm の力を借りてそれなりに奇麗なものを書いた。
gist: 175485 - GitHub