2.2 KiB

Live Templates are customizable rules that allow developers to abbreviate repetitive text patterns or surround code fragments with repetitive constructs in the editor.

When a user types the designated abbreviation followed by a configurable expansion key (usually Tab), the IDE transforms the preceding input sequence to its full-length output, and update the cursor position.

For example, consider a for loop. Typically, the end user would need to type for (int i = 0; i < 10; i++) {<Enter><Tab><Enter><Enter>}<Up>. This pattern may be shortened to fori<Tab> and the remaining contents will be expanded, leaving the following structure:

for (int i = [|]; i < []; i++) {
  []
}

As the user completes each section of the for loop and presses Tab, the cursor advances to the next position in the editor.

Another use-case for live templates is surrounding the selected code with additional constructs. When a user selects a code fragment and invokes the Code | Surround With... action and chooses the template from the list, the code is wrapped with the content defined in the template.

Consider the following Java method with the selected fragment:

public void testMethod() {
  <selection>getActions()</selection>
}

Invoking the Code | Surround With... action and selecting the Iterate Iterable or array template would transform the code to:

public void testMethod() {
  for (Action action : getActions()) {
    <cursor>
  }
}

See the section for the information on how to implement more advanced code surrounding.

{type="note"}

For more information about creating Custom Live Templates, refer to the corresponding documentation.

These sections describe how to add Live Templates, and their associated building blocks, to plugins.