EC-CUBE Controller Twig NavigatorEC-CUBE 開発者向けの Visual Studio Code 拡張機能です。コントローラーのアクションメソッドと Twig テンプレートを右クリック一発で相互に行き来できます。 機能コントローラー → TwigPHP コントローラーをエディターで開き、ファイル上で右クリックして EC-CUBE: Open Related Twig Template を選択します。 カーソル位置のアクションに対して、次の 2 種類のテンプレート参照を同時にスキャンします。
カーソルをメソッド名の行に置いても、 解決の挙動カスタムテンプレートディレクトリが存在する場合( ファイル上での右クリック時に参照先ファイルがカスタムディレクトリに見つかった場合は、ピッカーを表示せず即座に開きます。 カスタムディレクトリが存在しない、またはファイルが見つからない場合 全検索ディレクトリ(後述のテンプレート検索順を参照)から候補を集めた Quick Pick リストを表示します。リスト下部のセパレーター以降には Create new file エントリーが表示され、選択すると Block フォルダの除外Quick Pick 一覧には Twig → コントローラーTwig テンプレートをエディターで開き、ファイル上で右クリックして EC-CUBE: Open Related Controller Action を選択します。 コントローラーファイルを検索して、現在のテンプレートパスを参照している テンプレートディレクトリの選択コマンドパレット( テンプレート検索順カスタムディレクトリで即時一致が得られなかった場合、次の順番で全ディレクトリを検索し、結果を 1 つの Quick Pick リストにまとめます。
カスタムテンプレートディレクトリのセッションキャッシュ(v0.0.7)
v0.0.7 からは、選択結果を VS Code のセッション中にキャッシュします。 プロンプトはセッション内で 1 回だけ表示され、それ以降のコマンドではキャッシュされたディレクトリ名を再利用するため、1 回のクリックで直接移動できます。 EC-CUBE: Select Template Directory を実行して永続設定を保存した際は、キャッシュが自動的にクリアされます。 新規ファイルの作成Quick Pick からの作成(
|
| ファイル種別 | コマンド | 動作 |
|---|---|---|
.php |
EC-CUBE: Open Related Twig Template | 現在のアクションがレンダリングする Twig テンプレートを開く |
.twig |
EC-CUBE: Open Related Controller Action | このテンプレートをレンダリングするコントローラーアクションへジャンプ |
いずれのコマンドも、ファイル本体を右クリックして実行します。
Quick Pick が表示されない場合
コマンドは、エディター中央のファイル本体を右クリックすることで実行してください。
ファイル本体を右クリックすることで、カーソル位置のメソッド情報を正しく読み取れます。
設定
設定(Ctrl+,)を開いて ecCubeNavigator で検索します。
| 設定キー | デフォルト | 説明 |
|---|---|---|
ecCubeNavigator.templateDirectoryName |
"" |
app/template/ 配下のカスタムテンプレートディレクトリ名。空にすると自動検出します。複数のディレクトリが見つかり未設定の場合は、セッション中に 1 回だけ Quick Pick が表示され、永続設定を保存するまでキャッシュされます。 |
.vscode/settings.json への記述例:
{
"ecCubeNavigator.templateDirectoryName": "your_theme"
}
動作要件
- VS Code
^1.90.0 - EC-CUBE 4.x の標準的なプロジェクト構成
インストール
VS Code Quick Open(Ctrl+P)を開き、以下を貼り付けて Enter を押します。
ext install colscenery.ec-cube-controller-twig-navigator
または 拡張機能マーケットプレイス から直接インストールできます。
変更履歴
0.0.12
- Esc キーによる新規ファイル作成の改善(確認ダイアログの廃止):
@Templateやrender()でテンプレートパスが指定されている場合、テンプレートディレクトリを選択すると確認ダイアログを表示せずに即座にファイルを作成するようになりました。(例:@Template("Cart/test.twig")の場合、テンプレートディレクトリを選択するだけでapp/template/MyTheme/Cart/test.twigが作成されます。)
0.0.11
- Block フォルダの除外: Quick Pick 一覧に
app/template/テンプレート名/Block/配下のファイルが表示されないようになりました。 - Esc キーによる新規ファイル作成(テンプレート参照あり): Quick Pick で Esc キーを押すと新規ファイル作成ウィザードが起動します。
@Templateやrender()でテンプレートパスが指定されている場合、フォルダ名とファイル名はそのパスから自動決定されます。テンプレートディレクトリを選択して確認するだけで作成完了です。(例:@Template("Cart/test.twig")→app/template/MyTheme/Cart/test.twig) - Esc キーによる新規ファイル作成(テンプレート参照なし): テンプレートパスの参照がない場合は、テンプレートディレクトリ・サブフォルダを選択し、ファイル名を入力して作成します。
0.0.10
- 修正: エディター上のファイルを右クリックしてコマンドを実行したとき、クイックピックを表示するまでに Esc キーを 2 回押す必要があった問題を修正しました。 カスタムテンプレートディレクトリが複数存在する場合、ファイル一覧ピッカーの前にディレクトリ選択ピッカーが割り込んでいました。コンテキストメニュー(ファイル本体上のいずれも)からの呼び出し時はディレクトリ選択プロンプトを完全にスキップし、すべてのカスタムディレクトリを自動的に検索対象に含めたうえでファイル一覧ピッカーを直接表示するよう改善しました。
0.0.9
- 修正:
@Templateやrender()の記述がないコントローラーを右クリックしたとき、Quick Pick が表示されない問題を修正しました。
0.0.7
- 修正: カスタムテンプレートディレクトリの選択プロンプトがナビゲーションのたびに表示される問題を修正。 選択結果を VS Code セッション中にキャッシュするよう変更し、プロンプトはセッション内で 1 回だけ表示されるようになりました。
0.0.6
- カーソルをアクションメソッドの任意の位置(関数シグネチャの行を含む)に置いても、
@Templateアノテーションが正しく認識されるようになりました。 - カスタムディレクトリに一致がある場合、ピッカーを表示せず即座に開くようになりました。
- カスタムディレクトリで一致が得られなかった場合、全検索ディレクトリの候補と Create new file エントリーをまとめた Quick Pick リストを表示するようになりました。
0.0.5
- 初回公開リリース。