IntelliJ IDEA 2017.3 Help

Save File as Template Dialog

IntelliJ IDEA helps you create the file templates from the 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 textEdit 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 available predefined file template variables are:

    • ${PACKAGE_NAME} - the name of the target package where the new class or interface will be created.
    • ${PROJECT_NAME} - the name of the current project.
    • ${FILE_NAME} - the name of the PHP file that will be created.
    • ${NAME} - the name of the new file which you specify in the New File dialog box during the file creation.
    • ${USER} - the login name of the current user.
    • ${DATE} - the current system date.
    • ${YEAR} - the current year.
    • ${MONTH} - the current month.
    • ${DAY} - the current day of the month.
    • ${TIME} - the current system time.
    • ${HOUR} - the current hour.
    • ${MINUTE} - the current minute.
    • ${PRODUCT_NAME} - the name of the IDE in which the file will be created.
    • ${MONTH_NAME_SHORT} - the first 3 letters of the month name. Example: Jan, Feb, etc.
    • ${MONTH_NAME_FULL} - full name of a month. Example: January, February, etc.

    IntelliJ IDEA provides a set of additional variables for PHP include templates. Include templates are used to define reusable pieces of code (namely, file headers and PHPDoc comments) to be inserted in file templates via the #parse directive.

    The following variables are available in PHP include templates:

    • ${NAME} - the name of the class, field, or function (method) for which the PHPDoc comment will be generated.
    • ${NAMESPACE} - the fully qualified name (without a leading slash) of the class or field namespace.
    • ${CLASS_NAME} - the name of the class where the field to generate the PHPDoc comment for is defined.
    • ${STATIC} - gets the value static if the function (method) or field to generate the comment for is static. Otherwise evaluates to an empty string.
    • ${TYPE_HINT} - a prompt for the return value of the function (method) to generate the comment for. If the return type cannot be detected through the static analysis of the function (method), evaluates to void.
    • ${PARAM_DOC} - a documentation comment for parameters. Evaluates to a set of lines @param type name. If the function to generate comments for does not contain any parameters, the variable evaluates to empty content.
    • ${THROWS_DOC} - a documentation comment for exceptions. Evaluates to a set of lines @throws type. If the function to generate comments for does not throw any exceptions, the variable evaluates to empty content.
    • ${DS} - a dollar character ($). The variable evaluates to a plain dollar character ($) and is used when you need to escape this symbol so it is not treated as a prefix of a variable.
    • ${CARET} - indicated the position of the caret after generating and adding the comment.

      This ${CARET} variable is 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 so documentation comments can be created to several classes, functions, methods, or fields. As a result, IntelliJ IDEA cannot "choose" the block to apply the ${CARET} variable in, therefore in this case the ${CARET} variable is ignored.

    • ${DATE} - the current system date.
    • ${YEAR} - the current year.
    • ${MONTH} - the current month.
    • ${DAY} - the current day of the month.

    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$, etc.) 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 styleSelect 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 TemplatesSelect this checkbox to use a live template inside a file template. So doing, 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!

DescriptionThis read-only field provides information about the template, its predefined variables, and the way they work.
Last modified: 6 March 2018

See Also