Support for C# 6.0
Starting from version 9.0 ReSharper provides support for new language constructs introduced with C# 6.0. Those include static usings, exception filters, string interpolation,
nameof() operator and others. We are also introducing a set of new quick-fixes to replace curly brace delimited constructs with expression bodies, to update your null checking code using the new
?. operator, to transform to regular/verbatim interpolation or to update parameter references using
Please see this post for more details on C# 6.0 support.
Find type on NuGet
When you have a type or namespace used inside your project that can't be resolved to referenced libraries or packages, ReSharper can search for this type or namespace in the NuGet package gallery, display the list of matching packages and easily download and install the package that you choose.
ReSharper 9 supports EcmaScript 6, TypeScript 1.4 and TypeScript 1.5. It is even aware of some TypeScript 1.6 features such as local types, abstract classes, type predicates,
async functions and methods, as well as the
Fix in Scope evolution
ReSharper 9 expands the Fix in Scope feature with an ability to remove redundant qualifiers, fix naming or remove regions in the scope of a project or the whole solution.
In addition, ReSharper is now able to look through the code in your solution and generate the appropriate imports for all unresolved types.
This feature can import extension methods as well. The only case when ReSharper can't import a type is when it resolves to two different namespaces (e.g.,
A new Go To Action feature searches for a particular action using the legendary Alt+Enter shortcut. Navigate to Exposing APIs command finds all methods that are capable of returning a particular type.
Find Usages gets a configurable setting for the
tab, and it no longer blocks the UI on long-running searches. You can also filter or ignore particular issues in the Find Results window that was updated not to produce extra tabs for the same type.
The Go to Usages pop-up is reworked as well: it now shows the context of discovered usages, as well as a progress bar, which can be very handy when looking at heavily used symbols.
Visual Studio 2015 support
ReSharper 9.2 integrates with Visual Studio 2015 RTM while preserving compatibility with 3 previous releases of the Microsoft IDE, namely 2013, 2012 and 2010.
When integrated into Visual Studio 2015, ReSharper merges Visual Studio's own quick actions into its
Alt+Enter menu, so when you want to make changes to your code, you can choose either ReSharper or Visual Studio to do it for you, from the same list of actions.
Windows 10 applications
Starting with version 9.2, ReSharper supports Universal Windows Platform (UWP) application development using Windows 10 Developer Tools. In addition to understanding the structure of UWP projects, ReSharper provides code completion for API checks and supports new Windows 10 specific XAML constructs.
A run configuration lets you run, profile or debug a project, a static method or any executable file. For static methods, a run configuration can be quickly created right in the editor:
You can create multiple run configurations depending on your needs and preferences. To run or debug the active configuration, press
Ctrl+F5 or F5. By default, the solution will be rebuilt, but you can also execute the active configuration without rebuilding. If you have dotTrace installed and integrated in Visual Studio, you can launch profiling from the same pop-up menu.
ReSharper 9 provides you with code completion for wildcards and regular expression groups, highlights errors, and offers a quick-fix to adjust wildcard backslashes to C# style. It comes with a separate Validation Utility for regular expressions that lets you quickly check input against a regular expression and get an immediate view of the matches and groups.
Type dependency diagram
Adding to the Project Dependency Graph, ReSharper 9 expands its set of Architecture Tools with a Type Dependency Graph. This diagram can be most helpful for finding out what code depends on a particular type, and what the type itself depends on.
Code style settings