Dotnet logo

.NET Tools

Essential productivity kit for .NET and game developers

How-To's

ReSharper 8.1 Early Builds Available for Download

It’s that time of the year again when we open up the covers on what’s been cooking in ReSharper since the release of 8.0 a few months back! And while today we’re opening ReSharper 8.1 Early Access Program, there’s nothing minor about the new features that we’ve got in store for you.

Here are some of them that you can check out right now.

TypeScript Support

The key focus for this release is the support for the TypeScript programming language. Support for TypeScript includes the following:

  • Refactorings such as Rename and Introduce Variable, with detection of identifiers in strings as well as detecting of structurally compatible members.
  • Navigation support including support for Go to Everything and smart usage search (an ability to search for structurally similar constructs). Note that both Rename and the navigation features work in dynamically typed parts of code, too!
  • Code completion support.
  • Support for rearranging code, including the greedy brace mechanic.
  • Code inspections such as an ability to detect unused parameters, detect invalid CSS references, and many others.
  • Deep integration with other parts of the project, i.e. HTML, CSS and JavaScript. This includes inspection, navigation and other features.

JavaScript projects also benefit from TypeScript support. For example, even in a pure JS project, you can improve ReSharper’s code completion by including TypeScript type definitions for your libraries. To get them, search for DefinitelyTyped on NuGet. Also, note that smart usage search and smart Rename mechanisms are available for JavaScript, too.

Stay tuned for an in-depth post on TypeScript coming very soon!

Support for Visual Studio 2013

ReSharper has included support for Visual Studio 2013 since version 8, but version 8.1 enjoys better integration with two new supported features. The first feature is Peek Definition. ReSharper integrates transparently into this feature, providing a lot more functionality than Visual Studio. For example, ReSharper can show decompiled method definitions, whereas Visual Studio can only show method stubs:

ReSharper 8.1 Peek Definition Decompile

ReSharper’s contextual navigation is also available in this mode, and any element navigated to shows in this same window.

Also, features such as Find Usages or Find Inheritors and many others that return large result sets now show them using the Peek Definition API in the list on the right:

ReSharper 8.1 Find Usages

Another feature that ReSharper supports is the enhanced scroll bar — a feature very similar to ReSharper’s own marker bar. ReSharper places its markers alongside this bar, together with tooltips and an ability to click to navigate to a particular issue:

ReSharper 8.1 Enhanced Scroll Bar

And don’t worry, if you prefer to use the old marker bar, we give you this option as well — you can find it in ReSharper’s Options under Environment | Editor | Editor Appearance.

Code Analysis

One of the major pain points we’re addressing in 8.1 is infinite loop detection – for those embarrassing times where you inadvertently made an infinite loop by failing to change the loop condition anywhere within the loop.

ReSharper 8.1 Infinite Loop Detection

Another complaint that’s been addressed relates to ReSharper complaining about values possibly being null in LINQ even when an explicit check has already been made. We’ve updated our LINQ nullness analysis so that the following code no longer triggers any complaints from ReSharper:

ReSharper 8.1 Nullness LINQ Analysis

Yet another inspection issues a warning in downcast in foreach statement, another potential source of bugs:

ReSharper 8.1 Warning in Downcast Foreach

XAML Improvements

  • Completion improvements, including double completion for resource references and command name completion (see this blog post for info on the double completion mechanic).
  • An update to the usage inspection mechanism, including WPF 4.5 static property notification support.
  • A mechanic to import types on paste, just like the one we currently have in C#.
  • ThemeDictionary support for WinRT 8.1.
  • Various typing assistance mechanisms, including smart handling and deletion of XAML braces, smart deletion of XML attribute quotes, as well as a mechanic to convert an attribute to an element on the press of the Enter key.

Architecture Tools

Our latest creation, the Architecture tools, are getting some love as well. Latest improvements include:

  • Better overall performance of analysis and rendering.
  • Improvements in UI fluidity and smoothness, including smooth repositioning animations when graph elements are added or removed.
  • Undo/redo support.
  • A new option for drawing edges called Possible Path. Shows up as green dashed reference lines and implies that even though there are no direct references between currently selected projects, there is a path between them consisting of one or several projects. These reference lines also have a Show Path context menu item.
  • Many improvements were made in response to user requests – for example, we made more convenient context actions to get desired graph selection:
    ReSharper 8.1 Architecture View Selection Context Menu

Odds & Ends

Our standalone tools InspectCode and dupFinder have also gotten some love in the form of better error validation and output as well as support for plugins.

The tool windows that ReSharper uses have been redone using WPF. New tab items now show up on the left, they look better, you can pin them, and if you open more than five tabs, old tabs unload themselves, saving memory — but you can always restore them if you need to.

Things to Come

Here are some of the things we’re still working on, which will appear as part of the 8.1 release:

  • Improved JavaScript support. We’re working on improvements in renaming, navigation as well as support for Structural Search and Replace (SSR) for this language.
  • Various improvements to TypeScript support beyond those mentioned above.
  • Improved support for High-DPI monitors, so those of you with Retina displays have a more pleasant experience.

While we’re preparing for final release, feel free to download ReSharper 8.1 EAP builds and let us know how this new update is working out for you!

image description