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).