CakePHPのプラグインでGoTo機能を改善したので、FuelPHPのプラグインもやったほうがいいのかなーと思い、実装してみました。何ができるのかというと、プロジェクトペインで選択することなくファイルを移動することができます。
環境
- NetBeans7.3+
プロトタイプ
使い方
デフォルトのショートカットのパターンは
[Ctrl + Shift + G] [*] or [Ctrl + J] [*]
です。ただし、他のアクションがすでにショートカットを設定している場合(例えば、CakePHPのプラグインを使っている)は、無効になっているので、手動で設定して下さい。(ツール > オプション > キーマップ : fuelで検索するとアクションの一覧が出てくると思います。)
Smart Go To
[Ctrl + Shift + G] [S]
現在のファイルキャレット位置で有効なファイルを表示します。たとえば、Controller_Welcomeクラスのaction_index()メソッド内でView::forge(‘welcome/index’);を読んでいる場合は、移動する候補にindexファイルを表示します。テストファイルがある場合はテストファイルも候補に表示します。ViewModelを使っている場合は、Viewも候補に含めます。
Go To File Type
ここでいうファイルタイプはcontrollerなどのことを指します。関連するファイルがある場合のみポップアップが表示されます。例えば、 controllerで有効なのはviewとviewmodel, testですが、viewで有効なのはcontrollerのみです。
- Controller [Ctrl + Shift + G] [C]
- View [Ctrl + Shift + G] [V]
- ViewModel [Ctrl + Shift + G] [W]
- Test [Ctrl + Shift + G] [Ctrl + T]
Go To All *
- Controller [Ctrl + Shift + G] [Ctrl + C]
- Model [Ctrl + Shift + G] [Ctrl + M]
- ViewModel [Ctrl + Shift + G] [Ctrl + W]
- Test [Ctrl + Shift + G] [Ctrl + T]
- Task [Ctrl + Shift + G] [Ctrl + K]
- Config [Ctrl + Shift + G] [Ctrl + I]
カレントファイルがいる場所を考慮して、それぞれのファイルを全部表示します。例えば、カレントファイルがapp内だとすると、appのcontrollerをポップアップリストに全部表示します。
ファイル名の最初の一文字目をタイプするとそのファイルが選択されます。複数ある場合はタイプした文字が先頭のファイル内を順に移動します。 タイプする文字を変える場合は切り替わりにくいので1秒ほど待って下さい。
考慮するディレクトリタイプは次のものです。
- app
- core
- module
- package
packageなどはcontrollerがなかったりして、classesのなかの他のクラスに移動したい場合があるかもしれませんが、現在その機能は実装されていません。
他にもこれも追加して欲しいというのがあればお知らせ下さい。