Live/Surround templates can be used for
generating code in existing files
and (if there is the
$SELECTION$parameter in the template body) for
surrounding code fragments with template code, such as
try...catch
statement.
Each live template is identified by a
Shortcut
- a short string of characters, e.g.
foreach
- that you can type right in the editor to invoke the template.
Live/surround templates can be used for a variety of things, e.g. for creating classes,
DTO’s or skeletons for unit tests.
The body of a live/surround template consists of literal strings and
parameters.
The idea is to combine these to maximize efficiency when invoking the template.
To create a new live/surround template
In the main menu, choose
ReSharper | Tools | Templates Explorer…
.
Optionally, if you want to create your template in a specific
settings layer,
choose the desired layer in the
Layer
drop-down list.
To learn more, see
Storage of Templates.
Click
New Template. The newly created template is opened in the
Template Editor.
Specify template shortcut in the
Shortcut field. It is used to quickly invoke the template when
creating code from template; it also appears in
completion lists.
In the
Description field, type optional description for the template.
To change the default
scope of the template, click the
Availability hyperlink. In the
Select scopes dialog that appears,
use check boxes to define where the new template can be applied.
You can expand some scopes to specify details (e.g. file masks or language versions):
Create the body of the template by typing or pasting the desired code.
For example, the template body can look as follows in the editor:
As you can see, there are 3 types of elements that have different
highlighting:
text literal - anything written as a plain text in the template body
will appear as is when we
invoke the template.
predefined parameter -
in our example, the
$END$ parameter tells ReSharper where we want the cursor to be positioned once
we have finished creating the template.
user-defined parameter
- as soon as you type a parameter (prefixed and suffixed with '$'), it appears in the
Parameters section to the right of the text area.
You can configure all defined parameters as described in the
Declaring Template Parameters section.
In our case, to establish the classname during its invocation, we make the
$className$$ a variable. The same occurs with the
$idType since we do not know what type we want the Id to be. Finally comes the
Id property. As we want it to resemble the classname,
we just use the corresponding parameter suffixed with 'Id'.
The different highlighting of the
$className$$ parameter (red and black frame) means that the red entry
will be used as the initial input position when in the
Hot Spot Session when the template is invoked.
With the
Use in selector, specify whether the template can be used for generating new code,
surrounding existing code, or both.
In case you want to use the created template for surrounding code, add the
$SELECTION$ parameter, which represents the text selected by the user before
invoking the template.
Configure template formatting options:
Select the
Reformat check box to make
ReSharper automatically reformats the expanded code fragment according to your
code style settings.
Select the
Shorten qualified references check box to make
ReSharper automatically insert namespace import directives or remove qualifiers that
become redundant after the template is applied.
If this check box is not selected, ReSharper will not insert any namespace import directives.
To save the template, choose
File | Save Selected Items on the Visual Studio menu or press
Ctrl+S.