<< [雑記]トラックボールを使う4つの理由 | main | iPhone でFX をやりたいのであれば、みんなのFX がいいのではないでしょうか >>

= の位置がそろっているコードをそうじゃないコードにする

このエントリーを含むはてなブックマーク hateb
僕は、下記のようにコードを揃えるのが好きだ。無意識のうちにそろえてしまうこともあるし、Perl ならperltidy とかで揃えている。今やっているお仕事でも同じように開発を行っていた。先日いくつかのコードを先方にレビューして頂いたのだが、先方のコーディング規約によると、こうやって揃えるのは規約違反だということだった。事前にコーディング規約を頂いているので、完全に僕のミスだ。さて、これを直さないといけないんだが、コードをそろえるためのツール(perltidy とか)はあっても、そろっているものをそうじゃなくするツールがすぐには見つからなかった。特に今回は、PHP だったのでperltidy も使えないし、かといって手で全部作業するのはモチベーション的にもキツいし、ミスも多そうだ。

そこで、先日紹介した「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
| Web技術 | 11:16 | comments(0) | trackbacks(0)
この記事のトラックバックURL
http://en.yummy.stripper.jp/trackback/1283236
トラックバック
コメント
コメントする