CLion Help

File and Code Templates

File | Settings | Editor | File and Code Templates

Files can be created according to pre-defined templates (file templates). Use this page to view, edit, and create such templates.

Existing templates are listed in the central part of the page. Different groups of templates are located in different tabs.

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


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


add.pngCreate TemplateClick this button to create a new template in the currently opened tab. This option is only available in the Templates and the Includes tabs.
delete.png Remove TemplateClick this button to delete the selected template. This option is only available for certain templates in the Templates and the Includes tabs.
copyCopy TemplateClick this button to create a copy of the selected template. This option is only available in the Templates 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 templates that have been modified (they 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

NameThis text box appears when a new template is created. Specify the name of the new template.
ExtensionIn this text box, specify the extension. CLion will apply this template when new files of this type are created.
Reformat according to styleSelect this check box, to have CLion 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 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!

Template textEdit 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:

    • ${PROJECT_NAME} - the name of the current project.
    • ${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.

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

See Also

Last modified: 20 October 2015