● 今日のコーディングスタイル
代入文が連続する場合、"=" の位置を揃えるのがここ数年のマイブーム。見た目綺麗で可読性が高くなるのがメリットだ。今では揃っていないコードを見ると「負け組」呼ばわりですよ。(殆ど自分の昔のコードだが)。しかし、インデント作業が面倒というデメリットもある。リファクタリングで変数名を変更したときに余計なコストが発生するのはイヤンですよ。
@port = port || DEFAULT_PORT
@socket = nil
@threads = nil
@log_level = NORMAL
|
→
|
@port = port || DEFAULT_PORT
@socket = nil
@threads = nil
@log_level = NORMAL
|
てことで、折角の emacs だから、これは自動化させないとだ。syntax のみ見ればいいので言語に依存しない汎用的なものができそうだ。てことは、既にどこかにあるはずだ。そうだ、google だ!だめだ、ありそうなのに見つからない(5分で挫折)。誰か M-x equal-indent-region をここらへん(↓)にきぼんぬでござるー。
…/lisp/align.el というファイルに、いろいろと便利な関数が定義されているようです。<br>コメントを引用します。<br><br>;; This mode allows you to align regions in a context-sensitive fashion.<br>;; The classic use is to align assignments:<br>;;<br>;; int a = 1;<br>;; short foo = 2;<br>;; double blah = 4;<br>;;<br>;; becomes<br>;;<br>;; int a = 1;<br>;; short foo = 2;<br>;; double blah = 4;<br><br>試しに使ってみました。<br>M-x align-regexp <RET>、 その後「=」を指定するとできました。<br><br>英語をじっくり読めば、もっといい方法が分かるかもしれませんね。