IntelliJ IDEA 2020.3 ヘルプ

テンプレート言語: Velocity と FreeMarker

IntelliJ IDEA を使用すると、Velocity(英語) および FreeMarker(英語) テンプレート言語(VTL および FTL)でテンプレートを開発できます。コーディング支援と構文ハイライトは、デフォルトで有効になっている対応するプラグインを使用して提供されます。

Template language directives completion
Template language variables completion

デフォルトでサポートされているファイルタイプは次のとおりです。

VTL .ft.vm.vsl
FTL .ftl.ftlh.ftlx

テンプレートの静的部分が記述されている言語(テンプレートデータ言語と呼ばれます)のコーディング支援を有効にするには、次のいずれかを実行します。

テンプレートデータ言語をプロジェクト内のファイルやフォルダーに関連付ける

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語およびフレームワークをクリックしてからテンプレートデータ言語をクリックします。

  2. プロジェクトの右側のテンプレートデータ言語セルまたは対応するディレクトリまたはファイルをクリックし、言語を選択します。

  3. 変更を適用するには、OK をクリックします。

個々のテンプレートファイルは、テンプレートデータ言語を次のように変更するコンテキストメニューコマンドを使用して、エディターでテンプレートデータ言語を直接割り当てることができます。

対応するファイルタイプの拡張パターンを追加する

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、エディターをクリックしてからファイルタイプをクリックします。

  2. 認識されたファイルタイプで、FreeMarker テンプレートまたは Velocity テンプレートを選択します。

  3. ファイル名のパターンで、Icons general add をクリックします。

  4. ワイルドカードの追加ダイアログで、ファイル名の拡張パターンを指定し、言語を選択して、OK をクリックします。

    velocity_add_pattern

  5. 変更を適用するには、OK をクリックします。

未解決の参照の修正

IntelliJ IDEA は提供インスペクションをテンプレート言語に未解決の参照を検出するために:

Example template language inspection for unresolved references

未解決の参照は、インテンションアクションを使用して修正できます。同じファイルにコメントを追加するか、コメント付きの別のファイルを作成するかを選択できます。詳細については、特別なコメントを参照してください。

Example template language intentions for fixing unresolved referecnes

後者の場合、デフォルト名 velocity_implicit.vm または freemarker_implicit.ftl のファイルが作成されます。このファイルは次のコメントで始まります:

#* @implicitly included *#

参照タイプを定義するためのコード補完はコメントファイルで利用できます。

Velocity intention 1

ファイルの名前を変更するか、ソースルート内の別の場所に移動すると、参照定義は失われません。

特別なコメント

IntelliJ IDEA は、テンプレート言語を扱うための以下の特別なコメントを提供します:

FreeMarker のコメントは、<#---->、または [#----#] のいずれかを使用して区切られます。

コメント 説明
@implicitly included このコメントで始まる FreeMarker ファイルは、同じモジュールまたはその依存関係にあるすべてのファイルに含まれます。このような専用のコメントファイルを使用して、IDE 固有のコメントを定義し、テンプレートファイルを汚染しないようにします。
@ftlvariable 変数を定義します。例: 次のコメントは、String 型の変数 foo を宣言しています。指定されたファイルにのみ表示されます。
<#-- @ftlvariable name="foo" type="java.lang.String" file="path/to/file" -->
この場合、String を適切に解決するには、モジュールに JDK を添付する必要があります。プリミティブ型とジェネリック型がサポートされています。 file パラメーターはオプションです。
@ftlroot import および include ディレクティブが解決される相対パスを定義します。パスは、現在の FTL ファイルのパッケージ内のいずれかのディレクトリに関連して指定されます。JAR 内のパスもサポートされています。たとえば、次のようになります。
<#-- @ftlroot "path/to.jar!/path/inside/jar" -->

Velocity コメントは、#**# を使用して区切られています。

コメント 説明
@implicitly included このコメントで始まるすべての Velocity ファイルは、同じモジュールにあるすべてのファイルに含まれます。このような専用のコメントファイルを使用して、IDE 固有のコメントを定義し、テンプレートファイルを汚染しないようにします。
@vtlvariable 変数を定義します。例: 次のコメントは、String 型の変数 foo を宣言しています。指定されたファイルにのみ表示されます。
#* @vtlvariable name="foo" type="java.lang.String" file="path/to/file" *#
この場合、String を適切に解決するには、モジュールに JDK を添付する必要があります。プリミティブ型とジェネリック型がサポートされています。 file パラメーターはオプションです。
@vtlmacrolibrary このコメントを持つファイルに関連するテンプレートマクロを含むファイルを定義します。例: 次のコメントは、lib.vm のマクロが file.vm のコード解析にアクセスできるようにします。
#* @vtlmacrolibrary path="lib.vm" file="file.vm" *#
@velocityproperties このコメントを持つファイルとの相対的な velocity.properties ファイルとランタイムルートディレクトリを定義します。例:
#* @velocityproperties path=”path/to/velocity.properties” runtime_root=”path/to/runtime/root/dir” *#

関連ページ:

プラグインを管理する

このサイトのメニューやアクション名表記は日本語です。IntelliJ IDEA を日本語化するには、日本語言語パックのインストールを参照してください。プラグインは以下に示すように IntelliJ IDEA のコア機能を拡張します。バージョン管理システム、アプリケーションサーバー、およびその他のツールとの統合を提供する、さまざまな言語とフレームワークのコーディング支援サポートを追加する、ショートカットヒント、ライブプレビュー、ファイルウォッチャーなどで生産性を向上、コーディング演習と検証で新しい...

コードインスペクション

IntelliJ IDEA には、コンパイル前にプロジェクト内の異常コードを検出して修正する一連のコードインスペクションがあります。IDE はさまざまな問題を見つけてハイライトし、デッドコードを見つけ、可能性のあるバグを見つけ、スペルの問題、コード構造全体を改善することができます。インスペクションは、すべてのプロジェクトファイル内のコード、または特定のスコープ内のみ(たとえば、本番コード内、または変更されたファイル内)のコードをスキャンできます。すべてのインスペクションには、問題がコードに影響を...

インテンションアクション

エディターで作業するときに、IntelliJ IDEA はコードを分析し、コードを最適化する方法を検索し、潜在的な問題と実際の問題を検出します。IDE がコードを変更する方法を見つけるとすぐに、エディターの現在の行の横に黄色いバルブアイコンが表示されます。このアイコンをクリックすると、このコード単位で使用可能なインテンションアクションを表示できます。インテンションアクションは、警告から最適化の提案まで、幅広い状況をカバーします。インテンションの完全なリストを表示し、設定 / 環境設定ダイアログ...

Tapestry

Tapestry フレームワークに基づく Web アプリケーションの開発のサポートは、IntelliJ IDEA にバンドルされていません。プラグインを管理する説明に従って、JetBrains リポジトリから Tapestry プラグインをインストールできます。Struts 2 テンプレート言語: Velocity と FreeMarker

Thymeleaf

IntelliJ IDEA は、Thymeleaf の最新リリース版をサポートしています。Thymeleaf サポートの概要:IntelliJ IDEA での Thymeleaf のサポートは次のとおりです。式と属性のコード補完。テンプレート内の参照から、対応する getter メソッド、.properties ファイル内のメッセージ、またはその他の適切なコードフラグメントにジャンプできるようにする宣言への移動機能(または)。対応する型定義に切り替えるための型宣言機能(または)へのナビゲート。...