Live Templates

Use this page to manage live templates and their settings.
(A live template is a code fragment pattern that can be quickly inserted in the editor as a whole.
For example, there are live templates for the SELECT, CREATE TABLE,
UPDATE TABLE and other SQL statements.)

List of available live templates

Use this drop-down list to specify the default invocation key for all templates. Individual
expansion keys for the particular templates are defined in the editing area.

If the standard expansion keys (Tab, Enter, or Space) are not desirable,
select the Custom option from this drop-down list.

When Custom is selected, the Change link appears next to the drop-down,
leading you to the Keymap page.

Live Templates

This list shows all currently available template abbreviations supplied with their descriptions.
The abbreviations are grouped below nodes and sorted alphabetically within each group.
To activate a template or an entire group, select the check box to its left.

Only active templates are displayed upon invoking live templates in the editor.

If a template is active, the editor is sensitive to its abbreviation. Otherwise,
the abbreviation is considered merely a set of characters.

AddAlt+Insert

Click this button to have a new template item added to the current group of template. You can
define the template abbreviation, description, text, variables, expansion key, and context in the
editing area below.

RemoveDelete

Click this button to have the selected live template removed from the list.

Duplicate

Click this button to create a new template based on the selected template. A new template item is added to the current node
and the fields in the Template Text area show the definition of the selected template.

Restore

Click this button to restore the deleted live templates. This button is only enabled when the changes are applied.

Context menu of a live template

Item

Description

Move

Choose a group to move the selected template to.

Change context

Choose this command to modify the set of contexts where the current template is enabled.
Upon choosing this command, a list of supported language contexts is displayed. To make
DataGrip consider a context sensitive to the template, select a check box next to the context name.

The available context types depend on the enabled plugins.

Copy

Choose this command to create a serialized template XML in the system clipboard. Refer to section
Sharing Live Templates.

The Edit Variables button is enabled only if the template body
contains at least one user-defined variable, that is, a variable different from
$END$ or $SELECTION$.

DataGrip supports two predefined live template variables: $END$ and $SELECTION$.

You cannot edit the predefined live template variables $END$ and $SELECTION$.

$END$ indicates the position of the cursor after the template is expanded.
For example, the template return $END$; will be expanded into

return ;

with the cursor positioned right before the semicolon.

$SELECTION$ is used in surround templates
and stands for the code fragment to be wrapped.
After the template is expanded, the selected text is wrapped as specified in the template.

For example, if you select EXAMPLE in your code
and invoke the "$SELECTION$" template via the assigned abbreviation
or by pressing Ctrl+Alt+T and selecting the desired template from the list,
DataGrip will wrap the selection in double quotes as follows:

"EXAMPLE"

.

Applicable in:

This read-only field shows the languages and/or pieces of code where the editor should be sensitive to the template.
Upon pressing Ctrl+J in such context, DataGrip displays a list of templates
that are valid for this context.

Change

Click this link to modify the set of contexts where the current template is enabled.
Upon clicking the link, a list of supported language contexts is displayed. To make
DataGrip consider a context sensitive to the template, select a check box next to the context
name.

Edit Variables

Click this button to open the Edit Template Variables dialog box,
where you can define how DataGrip should process template variables upon template expansion.

The Edit Variables button is enabled only if the template body
contains at least one user-defined variable, that is, a variable different from
$END$ or $SELECTION$.

The Edit Template Variables dialog box contains a complete list of available functions.
See the list of predefined functions below on this page.

Options

In this area, define the behavior of the editor when a template is expanded.

Expand with - from this drop-down list, choose the key to invoke the template.

Reformat according to style - select this check box to have DataGrip
automatically reformat the expanded text according to the current style settings, defined on the
Code Style page.

Predefined functions to be used in live template variables

Note that the list of predefined functions in DataGrip depends upon the installed and enabled
plugins.

Item

Description

сamelCase(String)

Returns the string passed as a parameter, converted to camel case. For example,
my-text-file/my text file/my_text_file will be converted to
myTextFile.

capitalize(String)

Capitalizes the first letter of the name passed as a parameter.

capitalizeAndUnderscore(sCamelCaseName)

Capitalizes the all letters of a CamelCase name passed as a parameter, and inserts an underscore
between the parts. For example, if the string passed as a parameter is FooBar, then
the function returns FOO_BAR.

camelCase(String)

Returns CamelCase string out of snake_case string. For example, if the string passed as a parameter is
foo_bar, then the function returns fooBar.

complete()

This expression substitutes for the
code completion invocation at the variable position.

completeSmart()

This expression substitutes for the
smart type completion invocation at the variable position.

date(sDate)

Returns the current system date in the specified format.

By default, the current date is returned in the default system format. However, if you specify
date format in double quotes, the date will be presented in this format:

decapitalize(sName)

Replaces the first letter of the name passed as a parameter with the corresponding lowercase letter.

enum(sCompletionString1,sCompletionString2,...)

List of comma-delimited strings suggested for completion at the template invocation.

escapeString(sEscapeString)

Escapes the specified string.

expectedType()

Returns the type which is expected as a result of the whole template. Makes sense if the template is
expanded in the right part of an assignment, after return, etc.

fileName(sFileName)

Returns file name with extension.

fileNameWithoutExtension()

Returns file name without extension.

firstWord(sFirstWord)

Returns the first word of the string passed as a parameter.

lineNumber()

Returns the current line number.

lowercaseAndDash(String)

Returns lower case separated by dashes, of the string passed as a parameter. For example, the string
MyExampleName is converted to my-example-name.

snakeCase(sCamelCaseText)

Returns snake_case string out of CamelCase string passed as a parameter.

spaceSeparated(String)

Returns string separated with spaces out of CamelCase string passed as a parameter. For example, if the
string passed as a parameter is fooBar, then the function returns
foo bar.

time(sSystemTime)

Returns the current system time.

underscoresToCamelCase(sCamelCaseText)

Returns the string passed as a parameter with CamelHump letters substituting for underscores.
For example, if the string passed as a parameter is foo_bar, then the function returns
fooBar.

underscoresToSpaces(sParameterWithSpaces)

Returns the string passed as a parameter with spaces substituting for underscores.