What′s New in ReSharper

ReSharper 2016.2 adds initial support for ASP.NET Core 1.0 RTM; introduces structural navigation in your code with Tab; enables solution-wide analysis to indicate warnings in addition to errors; adds Go to Text for textual search across your solution.

Other ReSharper Ultimate family products such as dotTrace and ReSharper C++ receive important updates, too.

Download
Free 30-day trial
Take a short tour
Support for ASP.NET Core 1.0 RTM and tag helper syntax

ASP.NET Core 1.0 RTM

ReSharper 2016.2 adds initial support of ASP.NET Core 1.0 RTM. ReSharper should now correctly resolve project references in projects of this type and provide its core set of features, including refactorings, code inspections and navigation.

Tag helper syntax is now also supported in terms of code completion, navigation, search and refactorings.

However, running .NET Core unit tests is not supported so far: this is going to be addressed in the next update.

Structural navigation with Tab

Structural navigation with Tab

ReSharper now allows using Tab and Shift+Tab keys to jump between logical pieces of your code, similar to how you navigate in your web browser.

For example, when editing a for statement, Tab will select the initializer statement, then the terminating condition and then the iterator statement. Shift+Tab will make these selections in reverse order.

When the cursor sits before the first non-whitespace character in a line, you can still use Tab for indentation.

Learn more: how ReSharper makes Tab great again

Go to Text for textual search

Go to Text for textual search

A new navigation action, Go to Text (Ctrl+T,T,T), lets you quickly find and navigate to any text in source and textual files that are included in your solution. Similar to other navigation commands, if there are too many matching items, you can hit + on the numeric keypad to explore results in the Find Results window.

Advanced ReSharper users may recall an older plugin called Go to Word, and the new navigation action re-implements the functionality of this highly popular plugin right inside the mainline ReSharper.

Warnings in solution-wide analysis

Warnings in solution-wide analysis

If you're using solution-wide analysis, you know that normally, its red status bar indicator turns green as soon as the last error in solution is fixed.

Starting from 2016.2, you can make the indicator stay orange as long as your solution contains any unresolved warnings: both actual compiler warnings and ReSharper's inspections with the Warning severity level.

It is still up to you whether to enable the solution-wide analysis and whether to make it show warnings: you can right-click the status bar indicator to configure everything.

C# typing assistance

More C# typing assistants

ReSharper 2016.2 introduces a set of new C# typing assistance features that correct subtle mistypes as you enter code.

For example, if you happen to type MethodName(.), this will be automatically replaced with MethodName()., allowing you to keep entering a call chain without having to deal with an invalid syntax error.

Similarly, ReSharper will correct a mistyped @$ prefix to $@ in verbatim string interpolations.

Check all parameters for null

New quick-fixes and context actions

A ReSharper update without a new set of code inspections, quick-fixes and context actions is next to unthinkable, and ReSharper 2016.2 is no exception.

New Alt+Enter commands help simplify string interpolation inserts, revert the order of iteration in simple for loops, and fix awaiting of a void method by making it return a Task. Along the way, existing quick-fixes that make methods async were also revised to suggest using Task instead of void.

In other news, you can now check all parameters of a method for null (or empty strings) with a single context action. More than that, uncommenting and deleting comments can now also be done with Alt+Enter actions.

Support for XML doc inheritance

XML documentation inheritance

ReSharper 2016.2 improves support for the <inheritdoc/> tag in XML documentation comments, which is a good alternative to copying documentation from base types/members to derivatives:

  • There is now a context action to add an <inheritdoc/> to an inherited type member.
  • ReSharper can generate missing members and overriding members along with <inheritdoc/> comments if you want it to.
  • Quick Documentation can now correctly work on members that not only inherit documentation from their base members but refine it with additional or overriding comments.
Mark a reference as used at runtime

Safer Optimize References refactoring

Based on popular demand, ReSharper 2016.2 adds a way to mark references as used at runtime. This is important if you're using dependency injection frameworks.

By marking all references that are implicitly loaded, you can safely run ReSharper's Optimize References and Remove Unused References commands without breaking references that are required at runtime.

Refactor to partial type

Move members between type parts

A new refactoring, Extract Members to Partial, helps you quickly move type members between different type parts if partial classes are in use in your solution. Based on your input, the refactoring will use existing or create new type parts.

You can even invoke the refactoring over a #region to move all region members into a new file with a name inferred from the region name.

Revised surround templates

Revised surround templates

If you need to surround a piece of code with a template, you can now just select the code, and type in the name of a template you need: no extra shortcuts required.

In other news, a single template can now be used for for creating code (as a live template) and for surrounding existing code (as a surround template).

Injecting HTML or RegEx via comments

HTML and RegEx injection

You can now take advantage of HTML code analysis inside string literals in .cs, .js, and .ts files. Just put a comment /*language=html*/ ahead of a string literal that contains HTML, or use the Mark HTML here context action to enjoy syntax highlighting, error detection and other kinds of ReSharper's HTML support right inside the string literal.

Regular expression assistance in string literals can now also be enabled when you put a comment /*language=regexp|jsregexp*/ before a string literal that contains a C# or JavaScript type regular expression.

JSON value helpers

JSON value helpers and schema catalogs

JSON value helpers allow you to tell ReSharper to provide code completion or validation for your own JSON files. You can add a helper in the JSON Value Helpers options page, matching based on a filename mask and/or schema match. Custom JSON schema catalogs can also be added in JSON options.

Support for CSS custom properties

CSS custom properties

ReSharper's code inspections, quick-fixes, code completion, navigation, search and refactorings are now made available in CSS custom properties (also known as variables).

For example, in terms of code analysis, ReSharper helps you remove unused custom properties, detect undeclared custom properties and replace their usages with fallback values.

In addition, ReSharper 2016.2 introduces a set of fixes for improved CSS spec handling.

TypeScript 2.0.0 support

TypeScript 2.0 support

ReSharper 2016.2 completes support of language features available in TypeScript 2.0.0, such as abstract properties, this for functions, control flow-aware type guards, path mappings, optional class members, and the never type.

Code generation options in TypeScript code completion

More JavaScript and TypeScript improvements

Other improvements in terms of JavaScript and TypeScript support include:

  • Generating TypeScript code, such as overrides and lambdas, with code completion.
  • Completion for package versions in bower.json manifest files.
  • Improved Find Usages and Rename for union and intersection types.
  • A new quick-fix to implement missing members as abstract.
  • Go to Declaration and Find Usages work correctly with type aliases.
  • When renaming JavaScript function parameters, ReSharper learns to update the corresponding JsDoc items.
Assembly dependency diagram

Assembly dependency diagram

ReSharper 2016.2 adds the assembly dependency diagram to the family of its dependency analysis tools.

You can invoke the diagram on selected assemblies in the Assembly Explorer and explore connections that are established between the assemblies by virtue of their references.

Process Explorer in ReSharper

Process Explorer

The Process Explorer window, which was previously only available in dotPeek, displays all currently running processes, allows exploring their modules and decompiling those of them that are .NET assemblies.

You can choose to show or hide native processes and modules, or turn on process hierarchy view.

Filter the list to find a module or process that you're looking for, and then add its assemblies to Assembly Explorer for further investigation.

Improved IL code viewer

More ReSharper updates

In other news, ReSharper 2016.2:

  • Makes string interpolation suggestions, quick-fixes and context actions available in VB.NET.
  • Extends the C# formatter with new options for indenting of parentheses and code inside them; controlling spaces before and after ++ and -- operators, as well as before and inside parenthesis of checked and default expressions.
  • Helps rearrange code in interpolated string inserts and in expressions with 3 and more operands. "Greedy brace" now works for the opening brace, braces of types and namespace declarations.
  • Makes IL code displayed in the IL Viewer more readable: types, members, type parameters, and local variables are now highlighted with distinct colors; and loops are better distinguishable with indents and comments.
Download
Free 30-day trial

What′s new in ReSharper Ultimate

ReSharper is a part of the ReSharper Ultimate family along with dotTrace, dotCover, dotMemory, dotPeek and ReSharper C++.

With every new ReSharper release its fellow ReSharper Ultimate products receive updates as well. Below are the highlights of their latest changes.

ReSharper C++

ReSharper C++ 2016.2 adds the Quick Documentation pop-up to display documentation based on Doxygen comment blocks without having to navigate to a symbol's definition.

The new version also introduces the Inline Variable refactoring, and improves automatic completion so that it suggests symbols that are not included in the current file.

There are also certain performance improvements as ReSharper C++'s code analysis engine has been redesigned. For example, this is expected to make ReSharper C++ analyze several times faster when you open the Unreal Engine project for the first time.

Inline Variable refactoring for C++
Learn more

dotTrace

dotTrace Timeline Viewer can now fold recursive call stacks in your snapshots, which prevents infinite stack scrolling and streamlines stack analysis.

dotTrace 2016.2 learns to fold recursive call stacks
Learn more

dotMemory

dotMemory is now able to compare memory snapshots taken in different profiling sessions. This is useful when you want to find out how particular changes in code affect your application's memory usage.

Learn more

dotMemory Unit

The most recent release of dotMemory Unit, our .NET memory testing framework, improves performance of key queries (Type.Is, Interface.Is and Namespace.Like); supports open generic types in object selection; learns to select objects by wildcards using the Like and NotLike queries.

Learn more

dotPeek

Major updates to dotPeek 2016.2 are in sync with ReSharper's decompiling functionality.

Similar to ReSharper, dotPeek's version of IL Viewer improves code readability with color highlighting, indents and comments. Assembly dependency diagram also makes it to dotPeek: you can invoke it on assemblies selected in the Assembly Explorer and explore how the assemblies are referencing each other.

Learn more

dotCover

dotCover 2016.2 lets you exclude auto-properties from coverage analysis with Hide auto-properties option.

In addition, you can now filter out processes from dotCover Command Line Tools to reduce unnecessary overhead by excluding child processes that are irrelevant to the coverage analysis.

Learn more

ReSharper 2016.1

  • Code style features
  • Actions to manipulate strings
  • Actions to check argument values
  • Actions to convert strings to objects
  • WCF-specific actions
  • Invert Boolean Member refactoring
  • Smart Paste
  • Optimize NuGet References
  • IL Viewer

 

  • Out-of-the-box xUnit
  • VB.NET 14
  • JSON support
  • Initial support for Node.js
  • JSDoc improvements
  • Improved error highlighting
  • Async Find Code Issues

ReSharper 10

  • ReSharper Build
  • Revised Stack Trace Explorer
  • Usage-aware Go to Declaration
  • Out-of-the-box postfix templates
  • UWP support improvements
  • Support for Google Protocol Buffers
  • Enhanced JavaScript and TypeScript support
  • NUnit 3.0 support
  • Code style settings