IntelliJ IDEA 2020.2 Help

Save File as Template dialog

IntelliJ IDEA helps you create file templates from existing files.

NameSpecify here the name under which the new template will appear in the Files tab of the File and Code Templates settings. By default, the name of the current file is used.
ExtensionSpecify here the extension of the file to be created by this new template. By default, the extension of the current file is used.
Template text

Edit the template contents. You can use:

  • Plain text.

  • #parse directives to work with template includes.

  • Custom variables. Variables' names can be defined either directly in the template through the #set directive or during the file creation.

    Note that IntelliJ IDEA doesn't prompt for the values of Velocity variables defined with #set.

  • Variables to be expanded into corresponding values in the ${<variable_name>} format.

    The following predefined variables can be used in file templates:

    ${DATE}Current system date
    ${DAY}Current day of the month
    ${DS} Dollar sign $. This variable is used to escape the dollar character, so that it is not treated as a prefix of a template variable.
    ${FILE_NAME}Name of the new PHP file (if the PHP plugin is enabled)
    ${HOUR}Current hour
    ${MINUTE}Current minute
    ${MONTH}Current month
    ${MONTH_NAME_FULL}Full name of the current month (January, February, and so on)
    ${MONTH_NAME_SHORT}First three letters of the current month name (Jan, Feb, and so on)
    ${NAME}Name of the new entity (file, class, interface, and so on)
    ${ORGANIZATION_NAME}Name of your organization specified in the project settings (Ctrl+Alt+Shift+S)
    ${PACKAGE_NAME}Name of the target package where the new class or interface file is created
    ${PRODUCT_NAME}Name of the IDE (for example, IntelliJ IDEA)
    ${PROJECT_NAME}Name of the current project
    ${TIME}Current system time
    ${USER}Login name of the current user
    ${YEAR}Current year

    IntelliJ IDEA provides a set of additional variables for PHP include templates, which are used to define reusable pieces of code, such as file headers and PHPDoc comments).

    The following additional predefined variables can be used in PHP include templates:

    ${CARET} Caret position after you finish editing the variables. Applied only when a PHPDoc comment is generated and inserted during file creation. When a PHPDoc comment is created through Code | Generate | PHPDoc block, multiple selection of functions or methods is available. Documentation comments in this case can be created for several classes, functions, methods, or fields, so the ${CARET} variable is ignored.
    ${CLASS_NAME}Name of the class where the field or method to generate the PHPDoc comment for is defined
    ${NAME}Name of the class, field, or function (method) for which the PHPDoc comment will be generated
    ${NAMESPACE}Fully qualified name (without a leading slash) of the class or field namespace
    ${PARAM_DOC} Documentation comment for parameters. Evaluates to a set of @param type name lines. If the function to generate comments for does not contain any parameters, evaluates to an empty string.
    ${STATIC} Is replaced by the static keyword if the function (method) or field to generate the PHPDoc comment for is static. Otherwise evaluates to an empty string.
    ${THROWS_DOC}Documentation comment for exceptions. Evaluates to a set of @throws type lines. If the function to generate comments for does not throw any exceptions, evaluates to an empty string.
    ${TYPE_HINT} Return value of the function (method) to generate the PHPDoc comment for. If the return type cannot be detected through static analysis of the function (method), evaluates to void.

    Treating dollar sign

    • You can prevent treating dollar characters $ in template variables as prefixes. If you need a dollar character ($ inserted as is, use the ${DS} file template variable instead. When the template is applied, this variable evaluates to a plain dollar character $.


      • To use some version control keywords (such as $Revision$, $Date$, and so on) in your default class template, write ${DS} instead of the dollar prefix $.

      • The template code ${DS}this will be rendered as $this.

Reformat according to style

Select this checkbox, to have IntelliJ IDEA reformat generated stub files according to the style defined on the Code Style page.

This option is only available in the Files tab.

Enable Live Templates

Select this checkbox to use a live template inside a file template. In doing so, one has to put the live template fragments into Velocity escape syntax.

For example:

#[[ $MY_VARIABLE$ $END$ ]]#

Thus, one can specify the cursor position. Note that it is required to use the live template variables here!


This read-only field provides information about the template, its predefined variables, and the way they work.

Last modified: 03 September 2020