IntelliJ IDEA 2018.2 Help

File and Code Templates

File | Settings | Editor | File and Code Templates for Windows and Linux
IntelliJ IDEA | Preferences | Editor | File and Code Templates for macOS
Ctrl+Alt+S settings


IntelliJ IDEA creates files using file templates. Use this page to view, edit, and create such templates.

Different groups of templates are located on different tabs.

When you select a template, its contents and description are displayed in the right-hand part of the page.

Per-project vs default scheme

ItemDescription
SchemeFrom this drop-down list, choose whether file and code template settings pertain to the entire workspace, or the current project:
  • Default scheme is selected, when file and code templates are global.
  • Project scheme is selected, if you want to use the sharable project-specific file and code templates.

Tabs

TabDescription
FilesThis tab displays the available file templates.

You can edit the existing templates, or create new ones.

IncludesThis tab shows the templates for reusable fragments that can be included in file templates.

You can edit the existing templates, or create new ones.

CodeThis tab displays built-in snippets, i.e. templates for code fragments that IntelliJ IDEA can generate in various typical situations, for example, for generating implemented or overridden method bodies.

You can edit the existing snippets, but you cannot create new ones.

OtherThis tab displays groups of templates related to various application servers and frameworks.

You can edit the existing templates, but you cannot create new ones.

Toolbar

ItemTooltipDescription
Create Template iconCreate TemplateClick this button to create a new template in the currently opened tab. This option is only available in the Files and the Includes tabs.

The location of the new template is defined by the Schema drop-down list.

icons general remove svg Remove TemplateClick this button to delete the selected template. This option is only available for certain templates in the Files and the Includes tabs.
icons actions copyCopy TemplateClick this button to create a copy of the selected template. This option is only available in the Files and the Includes tabs.
resetProfileToDefault.pngReset to DefaultClick this button to revert the selected template to its original state. This option is only available for the templates that have been modified (such templates are highlighted in blue).
N/AResetThis link appears in the top-right corner of the page when you start editing a template. Clicking this link resets all unsaved changes to any template in any tab.

Template settings and contents

ItemDescription
NameThis text box appears when a new template is created. Specify the name of the new template.
ExtensionIn this text box, specify the extension. IntelliJ IDEA will apply this template when new files of this type are created.
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 following predefined variables can be used in file templates:

    VariableDescription
    ${DATE}Current system date
    ${DAY}Current day of the month
    ${DS}Dollar character ($). This variable can be used to escape the dollar character, so it is not treated as a prefix of a variable.
    ${END}Caret position after you finish editing the variables
    ${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, etc.)
    ${MONTH_NAME_SHORT}First three letters of the current month name (Jan, Feb, etc.)
    ${NAME}Name of the new entity (file, class, interface, and so on)
    ${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:

    VariableDescription
    ${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 so documentation comments can be created to several classes, functions, methods, or fields. In this case, the ${CARET} variable is ignored.
    ${CLASS_NAME}Name of the class where the field 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 lines @param type name. If the function to generate comments for does not contain any parameters, evaluates to empty string.
    ${STATIC} Is replaced by static 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 lines @throws type. If the function to generate comments for does not throw any exceptions, evaluates to 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 ($).

      Examples:

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

This field is not available in custom templates.

Last modified: 18 June 2018