IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Enabling Template Files and Velocimacros Resolution
As you probably know, there’s something special about developing applications with template languages (e.g. Velocity and Freemarker): lack of compile-time information prevents from resolving references to included files and library macros. But this is not a problem anymore — IntelliJ IDEA can help you with the use of specially crafted comments.
Let’s have a look at an example module: a.vm file includes b.vm file via velocity.properties file (i. e. relative paths contained in file.resource.loader.path property).
Press Alt+Enter on an unresolved file reference in a.vm and select a module-wide velocity.properties file declaration (looks most appropriate for a single file).
IntelliJ IDEA finds or creates an implicitly included file (any *.vm file that begins with #* @implicitly included *#) and inserts a @velocityproperties comment into it. Then you can select a velocity.properties file from a list of suitable ones found by IntelliJ IDEA.
The comment itself is quite simple:
#* @velocityproperties path=”<RELATIVE PATH TO VELOCITY PROPERTIES FILE>” runtime_root=”<RELATIVE PATH TO RUNTIME ROOT DIRECTORY>” *#
Base for these relative paths is a folder containing file with comment (in this case, velocity_implicit.vm).