What's New in ReSharper 7

This page describes features available in ReSharper 7. The new version provides support for Visual Studio 2012 and Windows 8 application development, new refactorings and code hierarchy views, and more.

Support for Visual Studio 2012

ReSharper 7 works in four versions of Visual Studio, including the brand new Visual Studio 2012. It's the level of integration that's most impressive though, as ReSharper supports Asynchronous Solution Loading, makes use of Preview tab for code preview, exposes its features in Visual Studio's Architecture tools, and provides correct colors for both Light and Dark color schemes out of the box.

New refactorings

ReSharper 7 introduces Extract Class refactoring to split cumbersome classes into single-responsibility classes, and Transform Out Parameters to Tuple refactoring for functional style supporters.

Smoother code formatting

Considering that code formatting is a very sensitive area of functionality, we have implemented some of the most demanded code formatter improvements so far. For example, ReSharper 7.1 is able to format XML doc comments and chained method calls.

Easier code review

Reviewing code and sharing ReSharper code inspection results with teammates is now easier, thanks to improved export functionality, as well as a way to copy code inspection items and convert them to work items.

Members Hierarchy

ReSharper's existing Type Hierarchy feature has been extended to support a common code exploration case: invoking it on a polymorphic member now shows type hierarchy which emphasizes in which types this member has or has not been implemented.

CSS Style Hierarchy

This is yet another example of Type Hierarchy extensibility, this time for web developers: You can now take a bird's-eye view on chains of nested CSS selectors.

Find Usages that works everywhere

ReSharper 7 makes it possible to search for usages of files, project folders or arbitrary selections of project items in Solution Explorer. For example, you can select a project folder, invoke Find Usages, and make it show usages of all non-private types and type members in this project folder that are external to that scope.

Unit testing improvements

These include support for Jasmine JavaScript testing framework, PhantomJS (which works both with Jasmine and QUnit), NUnit TestCaseSource attribute support, and NUnit 2.6 introduced as the default version.

JavaScript support improvements

ReSharper 7 introduces support for ECMAScript 5 and JavaScript properties, more relevant code completion in different scenarios including jQuery calls, a huge pack of context actions around string literals, conditional and logical operators, and properties.

Improved naming style configuration

Naming style settings in ReSharper are becoming more flexible, particularly due to the introduction of predefined naming styles that allow using lowerCamelCase_WithUnderscores, UpperCamelCase_WithUnderscores and similar mixed styles that are common among unit testing practitioners.

Completion commit settings

Following feedback from Visual Studio's own code completion users, we have introduced an options page called Completion Characters that lets you set whether you want ReSharper to commit a selected completion item on pressing Space, or prevent it from committing on certain characters that you can define. Visual Studio's own language-specific completion options are also taken into account.

Windows 8 and WinRT development

ReSharper 7 provides extensive tooling to support developers targeting the new Microsoft operating system and runtime. For example, the new version provides code inspections and quick-fixes that ease transition to the new environment, such as those highlighting WinRT types that should be sealed or those that can't be generic; support for projected types and new types of resources in XAML, as well as type, naming, and method projection support for JavaScript.

INotifyPropertyChanged support pack

ReSharper 7 introduces code inspections, context actions, code completion, and code generation helpers for those working with INotifyPropertyChanged interface, whether it's WPF, Silverlight, or third-party implementation.

Refreshed XAML support

Since ReSharper 7.1, XAML support is considerably enhanced in many ways including (but not limited to) code completion in bindings and elsewhere; typing assistance for synchronous tag editing; ensuring naming style consistency; and code generation in different scenarios.

Generate menu improvements

One of the key ReSharper coding accelerators available via Alt+Ins has received an update that comprises new actions to generate partial methods and equality comparers, enhancements to Generate Equality Members, and a fair share of INotifyPropertyChanged support.

Multi-level Alt+Enter menu

The pop-up menu that you see when you press Alt+Enter has been extended to hide items that are less relevant. For instance, it makes a huge difference in numerous Create from Usage scenarios when you instantly see the action that you're most probably going to invoke, and other possible actions are hidden on the second menu level.

New code inspections and quick-fixes

In addition to extensive sets of WinRT-specific code inspections for C# and VB.NET, as well as those related to INotifyPropertyChanged usage, ReSharper 7 improves its code analysis in other areas. For example, it adds new code inspections related to explicit interface implementation, optional arguments, C# 5 Caller Info attributes, JavaScript properties, and the usage of My namespace in VB.NET.

Contract annotations

One further improvement to the code analysis subsystem is the introduction of contract annotations that allow defining dependencies between method arguments and return values. Using this kind of annotations enables ReSharper to detect unreachable code and other control flow deficiencies.

Remove Unused References from solution

ReSharper provides several ways to get rid of redundant project references since version 6.1 but version 7 takes it to another level, making it easy to just quickly drop all unused references in your entire solution.

Not only can you invoke Remove Unused References exactly once on a solution level but if you can also make it run on an arbitrary set of project items containing references: for example, on a project folder, or a mixed selection of projects and project folders.

Initial ASP.NET 4.5 and ASP.NET MVC 4 support

As Microsoft is promoting updated versions of its web development frameworks, ReSharper starts to provide support for some of their new features, including strongly typed data controls, model binding, and MVC display modes.

LightSwitch and SharePoint support

The new ReSharper knows about LightSwitch application type, which leads to less red code and extends ReSharper feature coverage to a wider set of file types. As to SharePoint, ReSharper now understands SharePoint-specific master pages, resources, style sheets and JavaScript files.

SDK enabling support for new languages

Considering the ever increasing demand for covering new languages with ReSharper features, ReSharper 7 SDK now enables just that, letting the community and organizations cover new languages and dialects with ReSharper features.