ReSharper 2024.3 Help

Types of templates

There are several types of templates that you can use with ReSharper:

  • 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, for example foreach — that you can type right in the editor to invoke the template.

  • Postfix templates, which are available for C#, JavaScript, TypeScript , and C++, help you transform expressions that you have already typed without jumping backwards. For example, you can type .null after an expression and ReSharper will create an if statement that checks the expression to be null. For more information, refer to Postfix templates.

  • Source templates, which are only available for C#, can be created right in the code of your project as extension methods. As soon as you define a source template, you can pick it up in the completion list of corresponding types, similarly to postfix templates. For more information, refer to Source templates

  • File templates are used to create one or more new files with predefined code, such as a type declaration, unit test, and so on. File templates have no shortcuts, they are identified by their descriptions. For more information, refer to Create files from templates

    and Create multi-file templates.

Right after installing ReSharper, you will find a lot of predefined templates of all types. Predefined templates cover the most common cases for C#, VB.NET, ASP.NET, XML, HTML, Razor, CSS, JavaScript, TypeScript and Resx code. Predefined templates also include code snippets for C# and JavaScript imported from Visual Studio. Note that imported Visual Studio snippets are a part of ReSharper installation and you cannot import your custom Visual Studio snippets.

For custom cases, ReSharper provides tools for creating, editing, and sharing user-defined code templates that can cover any particular aspect of your development practices.

This feature is supported in the following languages and technologies:

Language: C#

Language: VB.NET

Language: C++

Language: HTML

Language: ASP.NET

Language: Razor

Language: JavaScript

Language: TypeScript

Language: CSS

Language: XML

Language: XAML

Language: Resx

Language: Build Scripts

Language: Protobuf

Language: JSON

Feature is available in C#

Feature is available in Visual Basic

Feature is available in C++

Feature is available in HTML

Feature is available in ASP.NET

Feature is available in Razor

Feature is available in JavaScript

Feature is available in TypeScript

Feature is available in CSS

Feature is available in XML

Feature is available in XAML

Feature is available in Resource files

Feature is available in build script files

Feature is not available in Protobuf

Feature is not available in JSON

The instructions and examples given here address the use of the feature in C#. For more information about other languages, refer to corresponding topics in the Languages and frameworks section.

Last modified: 11 February 2024