File template variables
A file template can contain variables, which are replaced by their values when the template is applied. A variable is a string that starts with a dollar sign $
followed by the variable name. The variable name may optionally be enclosed in curly braces. For example: $MyVariable
and ${MyVariable}
are different notations of the same variable.
Predefined and custom variables are available in the template body and in the filename. For example, if you type MyFile_${MONTH_NAME_FULL}
in the File name field of your template, the resulting file will be named MyFile_April
if you create it in April. Here, ${MONTH_NAME_FULL}
is a predefined variable. If you use a custom variable instead, WebStorm will prompt you to enter the variable value when you create a file based on this template.
Predefined template variables
The following predefined variables can be used in file templates:
Variable | Description |
---|---|
| Current system date |
| Current day of the month |
| Path to the directory of the new file (relative to the project root) |
| Dollar sign |
| Current hour |
| Current minute |
| Current second |
| Current month |
| Full name of the current month (January, February, and so on) |
| First three letters of the current month name (Jan, Feb, and so on) |
| Name of the new entity (file, class, interface, and so on) |
| Name of the IDE (for example, WebStorm) |
| Name of the current project |
| Current system time |
| Login name of the current user |
| Current year |
Variable methods
Because WebStorm uses Velocity as a template engine for file templates, variables in file templates can use Java String methods. For example, the following is possible:
${NAME.toUpperCase()}
: convert the name of the new entity (file) to upper case letters.${PROJECT_NAME.length()}
: print the length of the project name.${PRODUCT_NAME.substring(0,5)}
: print the first five characters of the name of the IDE you are using.
Custom template variables
Besides predefined template variables, it is possible to specify custom variables. If necessary, you can define the values of custom variables right in the template using the #set
directive. Write the directive before the corresponding variable is used.
For example, if you want to use your full name instead of your login name defined through the predefined variable ${USER}
, add the following construct before your custom variable:
In templates for creating classes, you can leave custom variables without values. WebStorm will ask you to specify these values when the template is applied.
The example below shows a custom template for creating a TypeScript class. The template has two custom variables: ${MyName}
and ${class_name}
.
When you create a class via this template, WebStorm shows a dialog where you are asked to specify the values for ${MyName}
and ${class_name}
.