add "surround with..." use-case in the live templates section

This commit is contained in:
Karol Lewandowski 2022-05-16 21:45:11 +02:00
parent c6ec78d252
commit bc2ccf5fae
2 changed files with 25 additions and 4 deletions

View File

@ -190,7 +190,6 @@
<toc-element id="live_templates.md">
<toc-element id="template_support.md"/>
<toc-element id="new_macros.md"/>
<toc-element toc-title="Surround Templates"/>
</toc-element>
<toc-element id="file_and_code_templates.md">
<toc-element id="providing_file_templates.md"/>

View File

@ -2,7 +2,8 @@
<!-- Copyright 2000-2022 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
*Live Templates* are customizable rules that allow developers to abbreviate repetitive text patterns in the editor.
*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.
@ -11,14 +12,35 @@ This pattern may be shortened to `fori<Tab>` and the remaining contents will be
```java
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 <menupath>Code | Surround With...</menupath> 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:
```java
public void testMethod() {
<selection>getActions()</selection>
}
```
Invoking the <menupath>Code | Surround With...</menupath> action and selecting the <control>Iterate Iterable or array</control> template would transform the code to:
```java
public void testMethod() {
for (Action action : getActions()) {
<cursor>
}
}
```
For more information about creating Custom Live Templates, refer to the [corresponding documentation](https://www.jetbrains.com/idea/help/creating-and-editing-live-templates.html).
These sections describe how to add Live Templates, and their associated building blocks, to plugins.
* [Providing Live Templates](template_support.md)
* [Creating New Functions for Live Templates](new_macros.md)
* Surround Templates