Dead Zone

Stand alone.

昨日の記事の補足ですが

2012-01-14 15:56:19 | 雑記

Call Hierarchy View自体はDLTKのものです。PDTに実装されているのは、コンテキストメニューのOpen Call Hierarchyを有効化/無効化する処理と、DLTKのCall Hierarchy Viewを呼び出す処理だけです。
で、DLTKのCall Hierarchy Viewは「Call Hierarchyを探索する処理」を呼び出すんですが、その処理はPDTには実装されていません。

このCall Hierarchy Viewがちょっとバグっぽくて...

Search ScopeをHierarchyにして、メソッドではなく関数(function)を選択してOpen Call Hierarchyすると、NullPointerExceptionが発生してしまいます。
これは、DLTKが初期化処理の中で選択されたメソッド(今の場合関数)の"クラス"を要求するからで、PHPの通常のfunctionの場合当然クラスは存在しませんからクラスを要求されてもNULLしか返せず、DLTKはNULLを想定していないのでエラーと相成ります。
Hierarchy以外の場合、Scopeのトップレベルはフォルダになりますが、Hierarchyの場合、トップレベルはファイルではなくクラスになります(JDTがそうなっているから)。そのため、クラスに属さない関数が存在するPHPでは問題が生じてしまいます。

また、Callee Hierarchyの方で、呼び出しメソッドが他のファイルにある場合、シングルクリックするとそのファイルがオープンされて無関係な箇所が選択されてしまいます。(ダブルクリックすると正常なファイル/箇所が選択されます)
これはJDTと動作が異なるので、DLTKがJDTのコードをコピった時にバグったかと。

他にもありそうな気がします...

ジャンル:
ソフトウェア
キーワード
ダブルクリック コンテキストメニュー
コメント (0) |  トラックバック (0) |  この記事についてブログを書く
Messenger この記事をはてなブックマークに追加 mixiチェック シェア
« Call Hierarchy | トップ | XDebug - Eclipse... »

コメント

コメントはありません。

コメントを投稿


コメント利用規約に同意の上コメント投稿を行ってください。
※文字化け等の原因になりますので、顔文字の利用はお控えください。
下記数字4桁を入力し、投稿ボタンを押してください。この数字を読み取っていただくことで自動化されたプログラムによる投稿でないことを確認させていただいております。
数字4桁

トラックバック

この記事のトラックバック  Ping-URL
  • 30日以上前の記事に対するトラックバックは受け取らないよう設定されております。
  • 送信元の記事内容が半角英数のみのトラックバックは受け取らないよう設定されております。
  • このブログへのリンクがない記事からのトラックバックは受け取らないよう設定されております。
  • ※ブログ管理者のみ、編集画面で設定の変更が可能です。

あわせて読む