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 template variables
The following predefined variables can be used in file templates:
Variable | Description |
---|---|
| Base function call signature during the override generation |
| Current system date |
| Current day of the month |
| Default return value of the function |
| Path to the directory of the new file (relative to the project root) |
| Dollar sign |
| Name of the new C or C++ file |
| Always returns |
| Name of the header file generated for a class or a source file |
| Current hour |
| Prevents repeated include of a particular header file |
| 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) |
| End of a namespace block created during refactoring |
| Beginning of a namespace block created during refactoring |
| Name of the IDE (for example, CLion) |
| Name of the current project |
| Type of the function's return value (used for generating new functions) |
| Google test suite name |
| Google test name |
| Current system time |
| Login name of the current user (all platforms) |
| For Windows and Linux: login name of the current user For macOS: registered full name of the user |
| Current year |
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.
For example, if you want to use your full name instead of your login name defined through the predefined variable ${USER}
, use the following construct:
If the value of a variable is not defined in the template, CLion will ask you to specify it when the template is applied.