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のコードをコピった時にバグったかと。
他にもありそうな気がします...









