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!

This entry was posted in ReSharper Tips&Tricks and tagged , , , . Bookmark the permalink.

16 Responses to ReSharper 8.1 Early Builds Available for Download

  1. Hannes K says:

    Nice improvements..

    But.. let’s just cut to the chase: do you guys now follow Microsofts new advice (given here: http://blogs.msdn.com/b/visualstudio/archive/2013/10/14/asynchronous-solution-load-performance-improvements-in-visual-studio-2013.aspx ) and defer allocation of resources for nonused tabs? To quote
    “To help ensure document deferral works to its full potential, it’s important that components and extensions access deferred documents only when truly necessary.”
    Otherwise Resharper has direct negative impact on solution load perf and mem usage (again..). Would love to know that, and if you guys aren’t taking advantage of it/making the new perf bonus obsolete, are you planning on fixing it?

  2. Hazzik says:

    I’ve downloaded R# SDK 8.1 where is the nuget packages for it? :(

  3. @Hazzik, you can find them at C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEExtensionsJetBrainsReSharper.SDKv8.1Packages if you installed ReSharper SDK as MSI.
    And, as well, we’ll start publish them to nuget.org as pre-release packages soon.

  4. Hazzik says:

    Thanks, @Slava.

  5. Hazzik says:

    Also, could you remove from SDK nunit, nuget.core and other libraries that already exists on nuget.org as packages? And reference them as nuget packages instead. That would be useful.

  6. Goran Genter says:

    Great work! I have one suggestion… can you add an option which will change the behaviour of CTRL + Left-Click on symbol so that it uses Peek Definition instead of Go To Declaration? Or maybe introduce some new but similar keybind, which will be easier to use as hyperlink (compared to the default Alt+F12).

  7. Kris says:

    This sounds great! I’ve been looking forward to retina support for a long time. Well, as long as the retina MBP has been out. :)

    One suggestion I have for this blog system is to left justify the comments. There’s a few here that are difficult to read. This obviously is not a big deal, just a suggestion.

    Keep it up guys!

  8. Blake Bowen says:

    How about putting in some JSDoc support for JavaScript like there is in PHPStorm?

  9. Steve Dunn says:

    Hi – looking forward to using the new InspectCode, but I can’t find it after installation…?

  10. @Steve inspectcode.exe is there in the root of the ReSharper CLI archive. Have you actually downloaded the archive? It’s there on the EAP page entitled “Command Line Tools (.zip)”

  11. @Blake Are these requests similar to what you’re after? If they are, please vote for them; if not, please create a new feature request.
    However there’s not much activity around them at the moment, and I’m afraid that JSDoc support is currently a backlog item.

  12. @Goran Can you please log your suggestion as a feature request in ReSharper issue tracker? Thanks

  13. Hazzik says:

    Do you have nuget feed for pre-release SDK packages?

  14. Joshka says:

    Hi,
    Would it be possible to add a simple text field to the EAP feedback to allow entering a short reason for the rating (e.g. foo is unstable etc.)?

  15. xxl says:

    can not support js when js in dll ?;

  16. Alec says:

    TypeScript text edit highlighting must have changed. No way to change them in the Font and Color options.

    Class and Interface names are now a dark blue when used with the “Dark” theme. Properties are random colors on interfaces, are dark purple when using the object, e.g. this.$scope

    Confirmed this by disabling by turning off TS support (Resharper -> options -> Languages). All goes back to normal after this.

    Nice overall improvements, just hate not being able to use the Dark theme.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">