ReSharper Ultimate 2016.3 is Released!

We have just finalized an update to ReSharper Ultimate, and we invite you to check out what’s new and download ReSharper Ultimate 2016.3 RTM!

Watch the following video for a summary of what is new in ReSharper Ultimate 2016.3, or read on for the main highlights of this release:

ReSharper

In addition to 700+ fixes, major highlights of ReSharper 2016.3 are the following:

  • Visual Studio 2017 RC initial support. All ReSharper Ultimate tools now support Visual Studio 2017 RC, including the new .csproj based .NET Core projects. Please note that though Visual Studio 2017 is marked as “RC” there are a number of features and architectural changes that are currently marked as “preview”. As such, we are still working on support for some of these new Visual Studio features, such as lightweight solution load and .NET Core unit testing.
  • Early support for C# 7 and VB.NET 15. ReSharper 2016.3 learns to understand VB.NET 15 and C# 7 binary literals and digit separators. C# 7 local functions are supported with a set of code inspections, such as Possible System.NullReferenceException, Access to disposed closure, and Access to modified closure. C# 7 out variables, pattern-matching in is expressions and switch cases are also supported.
    Digit separators and binary literals
  • New code generation actions. Generate Relational members action helps you automatically overload relational operators (>, <, , ) and/or implement IComparable and IComparable<T> using selected fields and properties. Generate Relational comparer creates a comparer class derived from Comparer using selected fields and properties. Generate Dispose pattern action helps you generate the implementation of IDisposable with optional nullability checks and destructor for unmanaged members.A quick-fix that helps implement a dispose pattern for IDisposable
  • New quick-fixes and context actions. ReSharper 2016.3 adds a new quick-fix to Introduce fields and auto properties from all unused parameters. This is an extension to the existing quick-fix that will introduce a field from a single constructor parameter, but if you extend the Alt+Enter menu item, it will now apply to all unused parameters at once.
    Introduce from unused parameters quick-fix
    The Introduce property quick-fix also includes a Configure default menu item, which will set what kind of property is generated by default. There's also a new context action on fields of type Lazy to introduce a property to encapsulate fieldname.Value.
  • New Transform Parameters refactoring is based on two existing refactorings: Transform Out Parameter and Extract Class from Parameters. It can be invoked on a method declaration and will rewrite the method’s parameters, changing incoming parameters to a new class, or a tuple, and optionally creating a new class for return value and any out parameters. Transform Parameters refactoring in ReSharper 2016.3
  • ReSharper's unit testing assistance is now available for NUnit and xUnit.net unit tests in ASP.NET Core and .NET Core projects in Visual Studio 2015.
  • Navigation and search improvements:
    • The Find Results window now works asynchronously, meaning that you can work with the results tree while usage search is still in progress. The Show in Find Results button becomes available in the pop-up as soon as you invoke Usages of Symbol (Shift+Alt+F12). So you can just click it or press + to go on working with the code while the search continues in the Find Results window.
      Async Find usages in ReSharper 2016.3
    • Recent Files can now delete entries with the Delete key, and both the Recent Files and Recent Edits pop-ups will now show the path of the file, to avoid confusion with similarly named files.
    • Go to Text now supports new formats of content files, such as .less, .hbs, .coffee, .scss, .dart, .as, .styl.
    • There is a new setting to remember the last search in Go to Everything, Go to Text and other search actions.
  • ReSharper Build receives its own Build Results window, which lists build warnings and errors. You also get more control over how you want to see the results. You can see them as a flat list, or enable grouping, to show by a mixture of project, folder and file. Or you can use ReSharper’s semantic knowledge of the file to group by namespace, type and member.
    Build Results window in ReSharper 2016.3
    Moreover, ReSharper Build now gets its own implementation of NuGet restore.
  • TypeScript, JavaScript and JSON support improvements:
    • Go to Implementation now works for TypeScript types too: you can jump from a base type or member to any of its implementations, bypassing intermediate steps in the inheritance chain.
    • A new quick-fix in TypeScript lets you quickly add type guards to disambiguate unresolved symbols.Surround with typeguard quick-fix
    • Structural Navigation (Tab or Shift+Tab) now works in JavaScript, TypeScript, and JSON.
    • Initial support for TypeScript 2.0.2 (“2.0 RC”): boolean, number and enum literal types.
    • The Encapsulate Field refactoring, which helps you quickly create a property for a field and optionally replace usages of the field, now works in TypeScript.
    • Optimized memory usage for TypeScript caches.
    • TypeScript support gets code completion for literal types, as well as a number of formatting fixes for JSX/TSX files.
  • Extended language injections. In addition to regular expressions and HTML, ReSharper 2016.3 lets you inject CSS and JSON in C#, JavaScript, and TypeScript strings. There are two ways to do so: you can either use the Mark as context action or you can use comments with the special syntax: //language=javascript|html|regexp|jsregexp|json|css
    Marking string literal as JavaScript
    In addition, ReSharper now automatically injects languages in certain known scenarios, such as injecting JavaScript into AngularJS templates, or CSS in jQuery's $[] indexer.
  • Redesigned inspections severity options page (Code Inspection | Inspection Severity).
  • ReSharper 2016.3 might now suggest you to use some of its features that can increase your productivity. In case it notices that some operation can be performed more efficiently, it would show a pop-up with a suggestion. You can enable the feature it suggests, read more about it, or disable further suggestions.

  • New options page (Code Editing | Third-Party Code), which allows adding C++, JavaScript, TypeScript, CSS, HTML and JSON files, folders and wildcards to be treated either as "skipped" or "library". ReSharper will completely ignore "skipped" files, and treat "library" files as read-only indexed for navigation, but with no inspections, quick-fixes and refactorings.
  • Assembly Explorer can now load assemblies directly from nuget.org or from any NuGet package source. Opening assemblies from NuGet package source
  • Stack Trace Explorer now lets you open external stack traces faster: if you copy a stack trace that contains symbols from the currently opened solution and then switch focus to Visual Studio, ReSharper will automatically load it to the Stack Trace Explorer without the need of pressing any shortcuts.

ReSharper C++


ReSharper C++ 2016.3 comes with 180+ fixes and the following set of larger improvements:

  • Visual Studio 2017 RC initial support: Just like the other tools in the ReSharper Ultimate family, ReSharper C++ 2016.3 can be installed into Visual Studio 2017 RC, but please note that in order to work with ReSharper C++ you should set Enable Faster Project Load to false under Tools | Options | Text Editor | C/C++ | Experimental.
  • New typedef refactorings. The Introduce typedef refactoring allows you to quickly create a typedef for the selected data type and replace this data type and all its occurrences with the newly created typedef. The Inline typedef refactoring does the inverse: it replaces an existing typedef with the actual data type.
    cpp_typedef_refactorings-still
  • Postfix completion and templates: Inherited from the mainline ReSharper, postfix code completion allows you to focus on your data, rather than the syntax. When you type a dot (.) or an arrow (->) after an expression, ReSharper C++ will suggest free functions that would accept that expression as the first parameter. ReSharper C++ 2016.3 gets some postfix template goodness as well. You can now quickly wrap an expression with one of the following templates: if, else, while, do, return, switch and foreach.
    Postfix templates in ReSharper C++ 2016.3
  • Catch support. In addition to Boost.Test and Google Test frameworks, unit testing assistance is now extended to support the Catch C++ test framework. Other unit testing improvements include support for Boost.Test in Boost 1.62 and improved performance on dynamic tests. Moreover, unit tests are now automatically updated for externally changed files.
  • C++ code analysis from the command line. Starting from this update, ReSharper C++ code inspections are available via InspectCode, a free command line tool that allows running ReSharper C++ inspections without opening a solution in Visual Studio.
    Command Line Tools for ReSharper C++ 2016.3
  • Enhancements in Quick Documentation: ReSharper C++ 2016.3 can display rich, syntax highlighted tooltips for C++ code elements. The tooltips will display function and variable types, as well as documentation. C#-style XML documentation comments are also sometimes used for C++ symbols. With ReSharper C++ 2016.3 they are correctly displayed in the Quick Documentation pop-up (Ctrl+Shift+F1) and in the quick info tooltip.
    Improved Quick Doc in ReSharper C++ 2016.3
  • Third-party code settings page now allows to exclude files from indexing, so ReSharper C++ will ignore "skipped" files, and treat "library" files as read-only.
  • Support for nested namespace definitions introduced in C++17 and a context action to use the new syntax for nested namespaces.
  • New options for C++ code formatter: "Spaces within parentheses in cast expressions", "Align chained method calls", "Align chained binary expressions" and "Place enumerators on new line".

Other tools in ReSharper Ultimate family also received their shares of improvements. First of all, dotCover 2016.3, dotTrace 2016.3 and dotMemory 2016.3 support .NET Core applications profiling and coverage and provide initial support for Visual Studio 2017 RC. Read on for the list of product-specific changes.

dotCover

  • Reworked coverage highlighting: new highlighting engine in dotCover 2016.3 reveals both coverage status and unit test status. A marker in the text editor shows red if any tests related to the current statement are failing, green if all tests are passing, and grey if there are no tests covering this statement.
    Updated coverage highlighting in dotCover 2016.3
  • New filtering options that allow easy selection of what code should be covered: all assemblies, everything except System and dotCover assemblies, or only solution assemblies without dependencies.
  • Multi-selection for nodes in the coverage tree.

dotTrace

dotTrace 2016.3 provides a wide set of improvements for its Timeline Viewer, for instance:

  • In dotTrace 2016.3, Timeline Viewer incorporates Subsystems feature from the Performance Viewer. To recap, each subsystem just groups calls made within a certain namespace or assembly. It is very handy for a quick estimation of how time in a particular call subtree is distributed among various components: user and system code, WPF, LINQ, collections, strings, and more.
    Subsystems in dotTrace Timeline view
  • New Debug Output filter that can be enabled to focus on what your application writes to the debug output, e.g. with the Debug.Write system method.
  • The new Native Memory Allocation event filter allows you to see what methods are making the allocations and analyze all issues related to native memory: potential memory leaks, issues with unmanaged components used by your managed code, and others.
  • The Call Stack window in dotTrace Timeline gets a whole bunch of enhancements in 2016.3. The Show system functions option that was helpful when analyzing methods’ own execution time is back again. The Top Methods list now shows not only methods own time, but total time as well. Moreover, now you can click on a method’s own or total time in Top Methods or Call Tree. This will apply a filter by a corresponding method or by a method and its subtree. The Top Methods list now follows your selection in Call Tree.

In addition there is a new Events window that shows you a list of events occurred in the profiled application: file operations, JIT, SQL queries, and more. Selecting an event will give details of the event, including timestamp, duration and call stack:
Events window in dotTrace 2016.3

dotMemory

dotMemory 2016.3 adds new inspections to check your application on finalized objects and objects queued for finalization. A new Finalizable objects inspection on the overview page shows such objects sorted by their type.
Finalizable objects inspection in dotMemory 2016.3

dotPeek

dotPeek 2016.3 introduces new ways to explore metadata of .NET assemblies. You can now dig through all metadata items (tables, blobs, strings, etc.) right from the Assembly Explorer, which enables you to automatically find and display usages of metadata table items, decode and display values of blob items and explore PE file headers.
Metadata explorer in dotPeek 2016.3
Same as elsewhere in the assembly tree, you can double-click metadata items to decompile and display the corresponding code.

Licensing

If you have an active subscription for ReSharper, ReSharper C++ or ReSharper Ultimate, we encourage you to upgrade to 2016.3 right away. If you are unsure whether your licenses are eligible to use with 2016.3, or if you need a formal quote or any other assistance, please get in touch with JetBrains sales anytime.


Get ReSharper Ultimate 2016.3

This entry was posted in How-To's and tagged , , , , , , , , . Bookmark the permalink.

46 Responses to ReSharper Ultimate 2016.3 is Released!

  1. When I am trying to install Resharper (upgrade from latest EAP), it can only find Visuatl Studio 2015. 2017 is dark and reads “Not Available”. Also, after installing, Resharper disappeared from VS 2015.

    Anyone else experiencing issues?

  2. smad says:

    Is it correct behaviour for selected failed test (green lines)?
    http://screencast.com/t/srF6hlN3sJy

    • ekaterina.solovova says:

      Yes, it’s by design in this version. When “Show coverage for selected test” is turned on, highlighting shows only coverage info – covered/uncovered, without test’s result. In this mode it’s suppposed that you have Unit Test Session window opened and you can always see the test that is selected now with its result.

      • smad says:

        Also when i enabled continuous tests and “coverage only for selected tests” option accidentally was enabled, it make markers always red.

        >>you can always see the test that is selected now with its result.
        “Tests session window” not always help, i could select group of tests.
        http://screencast.com/t/ESNrcJqD1HM

        I think you should change default “covered” color from green(same color as for “passed”) to another color, like you did for “uncovered” from red to grey.

        • ekaterina.solovova says:

          When you enabled and ran coverage analysis in the CT session, it became a new data provider for the highlighting. You could see at your screencast that “Highlight Code” button is disabled on the unit tests session window.

          Thank you for your prompt feedback! We’ll continue the work on the improvements for the new highlighting feature.

  3. Pingback: ReSharper Ultimate 2016.3 | OPC Diary

  4. John smith says:

    Why your plugin system changed after any updates?
    All plugins will be failed after each update

    • Daria Dovzhikova says:

      Hi,

      There are plenty of plugins already available, others will be updated in the near future. Are you missing some particular plugin?

      • John Smith says:

        There are some,
        Enhanced Tooltip, ForTea, ReSharper.Reflection, EggBlox Plugins for ReSharper, Resharper Glyphfriend and so on.

        When change your plugin interface, it’s hard to do some works

        Thanks

        • Mike-EEE says:

          Please feel free to vote for this issue, John. This limitation is what keeps me from viably testing the EAPs anymore. :( Now even with this new release, I (and you, and everyone that has extensions) have to wait a few weeks before all our favorite extensions get upgraded as well. Nice to see the release finally happen though. I was wondering if it was going to be renamed for 2017. :)

          Anyways, here is the issue. Please vote if you can!
          https://youtrack.jetbrains.com/issue/RSRP-459966

        • Julien Lebosquain says:

          Hello,

          I’ve just updated Enhanced Tooltip and ForTea to work with ReSharper 2016.3.

          • Mike-EEE says:

            Awesome, Julien! Thanks for sharing. Enhanced Tooltip is one of the extensions I use, along with ZenSharp, Heap Allocations Viewer, and TestCop. Each of these are the ReSharper to my ReSharper. I don’t upgrade to the latest Visual Studio unless R# is adequately supported. Same difference here. :)

  5. Tom Robinson says:

    Does the .NET Core unit testing support include .NET Core projects targetting .NET 4.6.1? I can’t get it to work, using XUnit. What could I be missing – do you have an example project I could look at?

  6. Pingback: Auf dem Weg zu ReSharper Ultimate 2016.3 - entwickler.de

  7. Александр Нестеренко says:

    When you make refactoring for generics?

  8. Pingback: Dew Drop - December 16, 2016 (#2385) - Morning Dew

  9. ta.speot.is says:

    I installed 2016.3 and opened a solution containing Xamarin projects and a portable class library library. R# can’t resolve references to it [the PCL]. Cleared caches, restarted VS, no luck. The solution builds cleanly in VS and deploys to Android devices.

    Solutions not involving portable libraries work fine.

  10. Eric Richards says:

    Not a fan of the new code coverage highlighting. The tiny little gutter indicators are too hard to see, or I am not smart enough to figure out how to get the full-line highlighting to stay on all the time, rather than just when the indicator is being hovered over.

  11. Timothee Howland says:

    Booh! C++ 2016.3 is seriously broken: it calls compile errors our template functions used in our shared pointers. Had to roll back to 2016.2. That’ll teach me to go out and see if the next version crashes less. Final ridiculousness: Where on your site is 2016.2.2 ?? Not .2, but .2.2.

  12. Adam Pluciński says:

    Hi,

    anyone has problems with Javascript Jasmine tests after upgrade from 2016.2 ?

    After running test I see on all javascript tests information “Task skipped on timeone”

    • Anton Lobov says:

      Hi, Adam. Sorry to hear about that. Could you please provide more details: which version of Jasmine are you using, and which runner is used to execute tests (browser/phantomjs)?

      We have one similar issue reported: https://youtrack.jetbrains.com/issue/RSRP-462220, if the configuration described in this issue looks like what you have, please subscribe, the issue is fixed in our development branch, and you’ll be notified when the fix is delivered.

    • Vladimir Belov says:

      Hi, Adam. Tests are skipped on timeout when Jasmine doesn’t report correct tests statuses in 30 sec.

      I found, TypeScript projects work incorrectly with Jasmine. My apologies.

      To get more information about possible causes, try to run tests with browser, Chrome is preferable. The blank browser page and “Uncaught ReferenceError: jasmineRequire is not defined at jasmine-html.js” in Chrome debugger indicate this TypeScript+Jasmine error. Please, let us know what browser shows, especially if the error is another. Thank You.

  13. DotnetShadow says:

    NUnit tests are all showing inconclusive using .net core, Xunit are ok but not NUnit

  14. Jonas says:

    It seems Alt+Enter is broken in this release — loosing cursor focus, while using Ctrl+. works fine..

    • Andrew Karpov says:

      Hi Jonas,

      Could you please try to go to ReSharper | Options | Keyboard & Menus and press the “Apply Scheme” button?

  15. fern says:

    Since about the time of this update I have been having trouble with the test runner — it regularly skips some of my tests. I have them divided into six categories, only two of which I need regularly. I used to select those two categories in the Unit Test Explorer, click Run, and go get coffee.
    But lately it does not discover all the tests in all the categories — or worse, tells me it finds them all, but when it goes to run them, it reduces the number and runs only a subset of them. And not a subset that seems to have any particular pattern to it. Clearing caches, fresh rebuilds — nothing helps. Sometimes they all run like they used to, but mostly they don’t.
    Is anyone else seeing this? Hopefully there is some excessively clever setting that I can disable. Would be grateful for tips.

    • Alexandra Kuks says:

      Hi,
      Sorry for inconvinience! Could you please provide some technical details? What Visual Studio are you using and what test framework? What’s the type of your test projects – just class libraries? Thanks in advance.

  16. fern says:

    Sure — Visual Studio Community 2015. Version 14.0.25123.00 Update 2. MsTest. Yes, fairly ordinary class libraries I guess, not sure what would count as exotic here. We have about 700 separate tests in 11 test projects.

Leave a Reply

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