2011/10/21

Eclipse PDT => Aptana Studio3 => NetBeans ( 今ココ )

Ubuntu 11.10になった辺りからXULRunnerの影響でEclipse PDT のコードアシスタンス( 入力補完 )が機能しなくなった。
症状としては、HTMLコードが上部に生出力されて、候補内容がスクロールしないと表示されない状態。
PDT周りがdisられているようなので、Aptana Studio3を試してみた。
けれど、結局母体はEclipseなので同症状。
それでも、コードフォーマットがキチンとサポートされていたりとマシだったので、暫く遊んでみた。
全体としてPHPサポートが良くなってきているものの、
CodeIgniterでの利用はコードアシスタンスが利用できない事が判明した...orz
@property が使えれば、完全にEclipseから乗り換えてもよかったのに残念。

次に一部で人気らしいNetBeansを数日使ってみた。
EclipseやAptana Studioと観点や操作性の違う箇所が多々あるものの、
必要機能は満たしていた。

課題としては、
  • カラーテーマが微妙で、結局自炊することになる場合が多い
  • Emacsキーバインドが微妙な実装で使い勝手が悪いシーンが稀にある
  • コード内容に警告などが多いとコード内スクロールをスムーズに出来無い
  • 各種シンタックスへのテーマ色がリアルタイムに行われるものの、数秒レンダリングが遅延する
  • コード整形が微妙で、Tabインデントのみ指定してても空白文字が挿入されたりする
    お陰でPHP_CodeSnifferは改変が必要...
    ( DisallowSpaceIndentSniff.php,  LogicalNotSpacingSniff.php  を無効化)
  • Eclipse的にコードアシスタンスを表示する動作が対象コード宣言時のみ。
    例えばsubstrの場合は、substr()まで打ち込むと候補一覧が表示できない。
    カーソルホバーしても何も表示されない。
    Ctrl+Shift+Spaceで再表示される。
    Alt+Pでパラメーター一覧表示できる。
優位点としては、
  • まともなリファクタリング機能が実装されている
  • PHP_CodeSnifferをIDEと連動できるプラグインがある
  • Java開発で利用したい機能がPHPでも利用できるものが色々ある。
    これ重要。コメントトグル、順・逆インデントetc
  • SCMは、CVS,SVN,Mercurial,Git(要プラグイン),Bazaar(要プラグイン)対応
  • その他便利機能がいっぱいある
    Eclipse Marketplaceほどではないものの本家にはプラグイン一覧あり
  • 次期バージョンでは、Smarty、CSS3+ベンダープレフィックス、Git本体統合などが投入される予定。待ち切れない人柱はこちら
といったところ。

以下、優位点の動作画面など
PHP_CodeSnifferとNetBeansの連携
きちんと問題箇所コードへ遷移できる!
リファクタリング機能で名前変更する
同名の変数を他スコープに設置してる様子
リファクタリング対象を選択して、コンテキスメニューから名前変更を実行
変更後の名前を指定する
プレビュー表示では、変更前後が表示される
きちんとスコープ内のみ対象となっている!
検出された対象の適用指定は、個別にチェックボックで指定出来る!!
「リファクタリングを実行」する
当然のように正しく対象物のみ変更される
ちなみに、JavaScriptもリファクタ出来る
期待のコードアシスタンス
Eclipse系とは違うものの、必要十分
パラメーター表示は、Eclipse系と違ってコードアシスタンス上ではなく、ツールチップ
@propertyコメントがあれば、CodeIgniterでもコードアシスタンスが利用出来る!
@propertyコメントは、CodeIgniter内のライブラリ系のみならずユーザーライブラリも対応可能!
PDTよりソース編集補助機能が豊富
試しに適当にコメントトグル実施
しっかり指定範囲がコメントアウトされている
課題は多いものの、地味なところで気遣い的な機能が実装されていたりして、
なかなか良い。
しばらく実戦投入して様子を見ることにした。

[追記] 2011/11/03
Git周りを使いたくて開発版を試していたら、いつの間にかにコーディング中のUIレスポンスが悲惨な
ことになってきた。
とりあえずメモリー周りが怪しいので、ググってみると本家FAQに対策があった。
どうやら使用メモリーを自動計算している仕様がボトルネックのようだった。
cd netbeans-xxx
sed -i 's/netbeans_default_options="/netbeans_default_options="-J-Xmx1024m -J-XX:MaxPermSize=512m /' etc/netbeans.conf
などとし、大幅に増加させると安定した。
後は、ScanOnDemandプラグインを投入して様子を見ることとにした。
ちなみに、当初はsshfsでソースディレクトリをマウントさせていたけれど、
随所で応答パフォーマンス劣化が酷かったのでsftp+gitに切り替えた。
色々とデメリットがあるものの、利便性よりコーディング速度の方が重要なので諦めた。

[追記] 2011/11/05
コーディングフォントをTakaoゴシックからRictyに変えたところ、Bold表記の文字にじみが酷かった。
cd netbeans-xxx
sed -i 's/netbeans_default_options="/netbeans_default_options="-J-Dawt.useSystemAAFontSettings=on /' etc/netbeans.conf
などとし、起動時にアンチエイリアス設定(サブピクセル停止)を追加した。

0 件のコメント: