EclipseのPDT使いながらショートカット一発でphpCodeBeautifierでソース整形。

PDTのソースフォーマットの機能が現状では貧弱であることが判明したので、何か別にソース整形ツールはないかと探したところ、いいものを発見↓


Do You PHP? - phpCodeBeautifier - コーディングスタイルを統一する


このphpCodeBeautifierのCUI版のプログラムを上のページで紹介されている要領でbatファイルを作成。

さらに、Eclipseの外部ツールの実行機能に登録。

ついでにショートカット一発で呼び出せるようにする。


というのをやってみた。
すごく楽にソース整形が行えて感動的!
(9/29追記↓)

設定手順

まずは下のページからphpCodeBeautifierのwindows版をダウンロード(どうやら今はCUI版のプログラムしかないみたい)。


phpCodeBeautifier Download

解凍したphpCodeBeautifierのプログラムを適当なフォルダに配置。

ボクの場合は

C:\phpCB

という感じにフォルダをCドライブ直下に作ってその中にプログラム本体(phpCB.exe)を配置しました。


※注意点
フォルダはどこに配置してもいいけど、たとえば「Program Files」などフォルダ名にスペースが含まれているフォルダの下に配置すると、このあとにセッティングするバッチファイルの実行に失敗するので、そういうフォルダ以下には置かないようにする(同じ理由で編集するphpファイルもそういうフォルダ以下には配置しないようにする)。

上で作成したフォルダの中にバッチファイルを作成する。

Do You PHP?の解説を参考にバッチファイルを作成しました。パスの関係などを考慮して、Do You PHP?に紹介されてるものから若干改造しています。とりあえずボクのバッチファイルのソースを公開しておきますので各自の都合に合わせて修正して使ってください(たぶんまんまコピペで大丈夫なはず)。


phpCB.bat(利用は自己責任で!)

C:\phpCB\phpCB.exe --space-after-if --space-after-switch --space-after-while --space-before-start-angle-bracket --space-after-end-angle-bracket --one-true-brace-function-declaration --glue-amperscore --change-shell-comment-to-double-slashes-comment --force-large-php-code-tag --force-true-false-null-contant-lowercase --align-equal-statements --comment-rendering-style PEAR --equal-align-position 50 --padding-char-count 4 --optimize-eol %1 > "%1.cb"
move "%1.cb" %1

※ちなみにセッティングしたらちゃんと動くかテスト用のファイルを使ってチェックしたほうがいいです。バッチファイルのセッティングがミスってるとphpファイルの中身が空になったりするので注意してください。

作成したバッチファイルをEclipse(PDT)の外部実行ファイルとして登録する。

※なお、ここからはKemworld::Diary - Eclipse3.3でPDT1.0とXdebugを使ってPHP開発環境を整える。でもちらりと紹介したのですが、
Eclipseを言語パックに頼らないで日本語化するプラグインPleiades」を導入してEclipseを日本語化した状態での説明になります。


PDTの画面上部のメニューの「実行→外部ツール→外部ツールダイアログを開く」で外部ツール設定画面を表示。


画面左側のエクスプローラ風な部分のプログラムの上で右クリックして「新規作成」。
名前を「phpCB」と設定して(名前はなんでもいいけど)、


メインタブ上で、


ロケーション:

C:\phpCB\phpCB.bat

作業ディレクトリー:

C:\phpCB

引数:

${resource_loc}

と設定。続いて更新タブに移動して、
「完了時にリソースを更新」にチェックを入れる。
(「選択されたリソース」にチェックが入っていることも確認。デフォルト設定なのでいじらなければ問題なし)


これでPDTからphpCodeBeautifierを使えるようになりました。
PDT画面上部のメニュー下にあるツールバーに外部ツール実行ボタンがあるのでここから実行できます(実行ボタンのすぐ横にあるボタン)。

最後に、ショートカットキー一発で呼び出せるようにセッティング。

キーボードで「Ctrl+Shift+L」と2回押すとキーバインディング設定画面が開きます。


画面上部のフィルタに「外部ツール」と入力すると、コマンド一覧の中に「最後に起動された外部ツールを実行」というのがあるので、このコマンドに自分の好きなキーバインディングを設定します。


設定方法は画面下のほうにバインディングというテキストボックスにカーソルをフォーカスした状態で自分が設定したいキーを押すと設定されます。


※好きなキーと言っても既存のショートカットと重複してしまったらいやだなあ、と思うわけですが、Eclipseのキーバインディング設定画面は頭がよく、もし入力したキーが他のコマンドのキーバインディングとかぶってしまったら、バインディングのキー表示の頭に「*」印をつけて教えてくれます。


とりあえずボクの場合はとくに根拠ないのですが「Ctrl + Shift + D」に設定しておきました(他のコマンドとの重複をさけ、かつわりと押しやすいキー設定にした、あとで変えるかもだけど)。


残念ながらセッティングしてある外部ツールそれぞれに直接ショートカットを設定することはできないようなので、上記の設定で我慢する(といっても一度実行してしまえば以後はショートカット一発で呼び出せるのでとくに不満はない)。


これでPDTでphpファイルを編集しつつショートカット一発でphpのソース整形ができるようになりました♪


(2007/11/4追記)
ちなみに、以下のページでPDT用のフォーマッタプラグインを開発されている方がいらっしゃいます!!今はまだ開発中のようですが将来的にはこちらが便利かもしれません!!

Dead Zone [eclipse pdt] フォーマッタ


(2008/4/18追記)
この記事をきっかけに一発でPDTからボタン一発でphpCodeBeautifierを起動するプラグインを作成してくれた方がいらっしゃいます!!感謝!!

WEBツール研究所 » PDTでPHPのソースコードを整形するプラグインを紹介


次に問題になるのはphpのプログラムを書くうえで自分自身のコーディングスタイルをきちんと決めること、かな。


だいたい上記バッチファイルのオプションはDo You PHP?(およびphpCBオリジナルのページ)に記載されているサンプルまんまなので、ほんとにこの設定でいいのかどうかっていうのは使う人それぞれが自分のコーディングスタイルを決めたうえできちんと精査するべきでしょう。


といいつつさっそく自分自身のコーディングスタイルをpearコーディング規約のページなど参考にしつつ模索してほぼ確定させたのでまたあとで書きます♪


(2008/4/30追記)
以下のような感じでコーディングスタイルや命名規約を自分なりに整理してみました♪↓
命名規則もろもろ(ファイル名、変数名、関数名、クラス名)。 - Kemworld::Diary