File and Code Templates
for Windows and Linux
for OS X
Ctrl+Alt+S
Files can be created according to pre-defined templates (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
Item | Description |
---|
Scheme | From 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.
|
Refer to the section Project and IDE Settings for details.
Tabs
Tab | Description |
---|
Files | This tab displays the available file templates.
You can edit the existing templates, or create new ones.
|
Includes | This tab shows the templates for reusable fragments that can be included in file templates.
You can edit the existing templates, or create new ones.
|
Code |
This 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.
|
Other | This 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
Template settings and contents
Item | Description |
---|
Name | This text box appears when a new template is created. Specify the name of the new template. |
Extension | In this text box, specify the extension. IntelliJ IDEA will apply this template when new files of this type are
created. |
Template text | Edit the template contents. You can use:
- Plain text.
-
#parse directives to work with
template includes.
- Custom variables. Their names can be defined right in the template through the
#set directive or will be defined during the file creation. - 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. -
${TIME} - the current system time. -
${YEAR} - the current year. -
${MONTH} - the current month. -
${DAY} - the current day of the month. -
${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, that is,
templates of reusable fragments that can be included in other PHP file template.
The built-in PHP include templates are intended for generating file headers and
PHPDoc documentation comments. 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
, 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.
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 style | Select this check box, 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 check box 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!
|
Description | This 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: 23 November 2016