IntelliJ IDEA 2016.1 Help

File and Code Templates

File templates are specifications of the contents to be generated when creating a new file. They let you create the source files that already contain some initial code.

You can view, edit and create the templates on the File and Code Templates page of the Settings dialog (File | Settings | File and Code Templates for Windows or Unix and IntelliJ IDEA | Preferences | File and Code Templates for OS X) .


File and code templates are written in the Velocity Template Language (VTL). So they may include:

  • Fixed text (markup, code, comments, etc.). In a file based on a template, the fixed text is used literally, as-is.
  • File template variables. When creating a file, the variables are replaced with their values.
  • #parse directives to include other templates defined in the Includes tab on the File and Code Templates page of the Settings dialog box.
  • Other VTL constructs.

Here is a typical template example. (This template is used for creating a Java class.)

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File") public class ${NAME} { }

In this template:

  • ${PACKAGE_NAME} and ${NAME} are template variables.
  • The #parse directive is used to include other template, the template File
  • The first line contains an #if VTL directive.

Applying this template leads to generating a file whose contents look similar to this:

package demo; /** * Created by IntelliJ IDEA. * User: John.Smith * Date: 6/1/11 * Time: 12:54 PM * To change this template use File | Settings | File and Code Templates. */ public class Demo { }

Predefined, internal, and custom templates

IntelliJ IDEA comes with a set of predefined file and code templates. You can use these templates as-is or modify them as necessary. You can as well create your own templates (custom templates).

Internal file and code templates are a subset of the predefined templates. These templates differ from all the other templates in that they cannot be deleted.

On the File and Code Templates page of the Settings dialog, the names of internal templates are shown in bold. The names of the custom templates and the predefined templates that you have modified are shown in blue.

When are file and code templates used?

Whenever you create a new file, you can choose to create an empty file (e.g. File | New | File) or use a file template. In the latter case, the initial contents of the new file will be generated according to the template you have selected. (Basically, all the options in the New menu except File , Package and Directory correspond to using a template.)


Are the choices of templates context-sensitive?

Generally, the set of the templates you can choose from when creating a new file depends on your module nature and configuration as well as the properties of your current location in the Project tool window. For example, you are not offered to use a template for an ActionScript class or interface, or an MXML component if your module is not a Flash module. Similarly, you cannot choose to create a Java class, interface, etc. outside of Java source or test directories (roots).

However, there are many templates that are available in any context.

See Also

Last modified: 13 July 2016