ReSharper Ultimate 2016.2 is here!

Daria Dovzhikova

We at JetBrains have just finalized an update to the ReSharper Ultimate family, and we welcome you to download ReSharper Ultimate 2016.2 RTM!
ReSharper 2016.2 is released
Read on for the main highlights of this release:


In addition to 750+ fixes, major highlights of ReSharper 2016.2 are the following:

  • Support for ASP.NET Core 1.0 and .NET Core 1.0 projects, which means that ReSharper now correctly resolves project references and provides its core set of features (code inspections, code completion, navigation, search and refactorings) in projects of this type. Please note that unit testing is not yet supported .NET Core projects. This is going to be addressed in upcoming updates.ASP.NET Core support
  • Structural navigation, a new feature informally referred to as “Make Tab Great Again”. You can now use Tab and Shift+Tab keys to quickly move the text selection to the next or previous code element without having to use the cursor keys, letting you quickly navigate to the next important piece of code you need to edit.
    Structural Navigation in ReSharper 2016.2
    Tab will certainly continue to handle template expansion, and will also indent (and Shift+Tab will outdent) when the text caret is placed at the start of a line. However, when the text caret is within a code element, Tab and Shift+Tab will start navigating and selecting the structure of your code. You can change this behavior in ReSharper options anytime.
  • Go to Text navigation (Ctrl+T,T,T) lets you quickly find and navigate to any text in source and textual files. This new feature uses trigram indexing to make text search blazingly fast. 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.
    Go to Text command in ReSharper 2016.2
  • Warnings in solution-wide analysis help you constantly keep track of all warnings in your solution: both actual compiler warnings and ReSharper’s inspections with the Warning severity level. The status bar indicator can now stay orange while there are unresolved warnings. It is still up to you whether to enable the solution-wide analysis and whether to include warnings into it: just right-click the status bar indicator to configure everything to your liking.
    Warnings in solution-wide analysis
  • Marking references as used at runtime to exclude them from code cleanup performed by the Optimize References and Remove Unused References features.
  • New C# typing assistant features, such as auto-replacing MethodName(.) with MethodName()., and correcting mistyped @$ prefixes for verbatim string interpolations.

  • Rearrange code improvements. For example, it is now available in interpolated string inserts, and in expressions with 3 and more operands; Greedy brace feature now works for opening brace, braces of types and namespace declarations.
  • Reworked surround templates. If you need to surround a piece of code with a template, 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).
    Surround templates in completion lists
  • A new refactoring to move members to another part of a class. You can also use the refactoring over a region to move all region members into a new file with a name inferred from the region name.
  • New quick-fixes and context actions that help simplify string interpolation inserts, revert the order of iteration in simple for loops, or fix awaiting of a void method by making it return Task. (By the way, existing quick-fixes that make methods async now 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. You can even uncomment or even delete a comment via Alt+Enter. Context action to add guard clauses for all arguments at once
  • Assembly dependency diagram that visualizes how assemblies are interrelated via references.
  • HTML analysis inside string literals in .cs, .js, and .ts files, which can be enabled with the context action or with a comment /*language=html*/ ahead of a string literal. You can now use the Mark HTML here action to enjoy syntax highlighting, error detection and other HTML goodies right inside the string literal.
  • Regular expression assistance in string literals can now also be enabled with a comment /*language=regexp|jsregexp*/ before the string literal. Language injection with comments
  • 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. These can be either a file, or a URL, which will be downloaded in the background, and periodically updated. JSON value helpers
  • Support for the <inheritdoc/> tag in XML documentation comments, which is a good alternative to copying documentation from base types/members to derivatives.
  • C# formatter improvements: new options for indenting of parentheses and code inside them; for controlling spaces before and after ++ and -- operators as well as before and inside parenthesis of checked and default expressions.
  • Improved IL Viewer: types, members, type parameters, local variables, etc. are contextually highlighted; loops in your code can be distinguished by indents and comments. IL viewer with highlighting and formatted loops
  • String interpolation suggestions, quick-fixes and context actions are now available for VB.NET. Context actions to convert a string literal to an interpolated string, or insert an interpolated argument are here as well.Concatenation to interpolation in VB.NET
  • Improved CSS support: ReSharper’s code inspections, code completion, navigation, search and refactorings are now also available for CSS variables. In addition, several fixes for better spec handling are introduced. CSS variables support in ReSharper 2016.2
  • Extended TypeScript/JavaScript support including:
    • Generating code with code completion in TypeScript (ctorf/ctorp, overrides, lambdas).
    • Improved Find Usages and Rename for union and intersection types.
    • Full support of TypeScript 2.0.0 features, including this for functions, control flow aware type guards, path mappings, optional class members, the never type.
    • If you have an abstract class implementing an interface, you can now generate missing members abstract, using the Generate action (Alt+Insert) or a quick-fix.
    • Go to Declaration and Find Usages work correctly when dealing with type aliases.
  • The Process Explorer window (ReSharper | Windows | Process Explorer), which was previously only available in dotPeek, provides you with the list of currently running processes, allows exploring their modules and decompiling those that are .NET assemblies.
    Process Explorer window in ReSharper 2016.2

ReSharper C++

ReSharper C++ 2016.2 comes with 200+ fixes and a set of larger improvements:

  • Inline Variable Refactoring is now available in ReSharper C++.Inline Variable refactoring for cpp
  • Quick Documentation pop-up appears in ReSharper C++ 2016.2. It can display documentation from Doxygen comment blocks, and even if there is no Doxygen documentation for a symbol, it will display the symbol signature. Quick documentation popup in ReSharper C++
  • New code inspections and quick-fixes: There is a new code inspection that warns you about missing include guards in your header files. As a quick-fix, it lets you automatically add #pragma once directive. Another new inspection detects a missing default case in a switch statement with a corresponding fix to add it.
  • Warnings about usages of classes and functions marked with the [[deprecated]]/__declspec(deprecated) attribute. ReSharper showing highlight for deprecated C++ code
  • Improved C++14 support: variable templates and decltype(auto).
  • Support of the [[noreturn]]/__declspec(noreturn) attribute in control flow analysis.
  • New code style preferences for #include directives in generated code.
  • Code style for default pointer initializer. You can specify 0, nullptr or NULL as the preferred initializer in the options, and ReSharper C++ will use it in generated initializers.
  • Automatic completion in C++ can now suggest symbols that are not included in the current file. The corresponding #include directives are added automatically.Import suggestions in C++ auto-completion
  • You can now generate documentation comments for C++ declarators, classes and macro definitions with a context action. The comment stub can be customized by editing the ‘doc’ live template that ReSharper uses for generation.
  • When your caret is on one of the exit points of a function/loop/switch (return, throw etc.), ReSharper C++ will automatically highlight all other exit points.
  • New formatter settings for single-line functions and lambdas, blank lines around single line function definitions, line breaks before member initializer list, and space between closing angle brackets in template arguments (for conformance with pre-C++11 compilers).
  • The mock function generator now supports the Trompeloeil framework.
  • Completion, usage search and rename of symbols in Doxygen comments.
  • __RESHARPER__ macro that allows you to detect when ReSharper is parsing your source code and, if necessary, disable ReSharper’s preprocessor for some code.
  • Performance improvements in indexing and code analysis.

Other ReSharper Ultimate tools have received their shares of improvement as well.


  • dotCover 2016.2 lets you exclude auto-properties from coverage analysis with Hide auto-properties option.
  • Filtering processes from console runner allows you reduce unnecessary overhead by excluding child processes that are irrelevant to the coverage analysis. To enable a process filter, use the /ProcessFilters parameter. For example, /ProcessFilters=+:prA;+prB will exclude all processes except prA and prB; /ProcessFilters=-:prC will exclude prC from the coverage.


Recursive call stacks can be deep and difficult to analyze. Previously, Timeline Viewer would show call stacks “as is”, i.e recursive calls were simply shown as they were called: one after another in the stack trace, which would lead to long scrolling. With dotTrace 2016.2 Timeline Viewer, you can easily fold such calls to streamline stack analysis.Recursive call stack in dotTrace Timeline Viewer 2016.2


dotMemory now allows you to compare memory snapshots stored in different workspaces: that is, collected in different profiling sessions. This can be useful to check how particular changes in code affect your application’s memory usage. All you need are two snapshots taken before and after making the changes.
Cross-workspace snapshots comparison in dotMemory 2016.2
For the full list of fixes in dotMemory 2016.2 please refer to release notes.


  • With dotPeek 2016.2, the IL Viewer displays code in a more readable manner: types, members, type parameters and local variables are contextually highlighted; loops in your code can be distinguished by indents and comments.
  • dotPeek 2016.2 adds Assembly Dependency Diagram to the existing visual dependency analysis tools. You can invoke it on assemblies selected in the Assembly Explorer and explore how the assemblies are referencing each other. Assembly_Hierarchy


If you have an active subscription for ReSharper, ReSharper C++ or ReSharper Ultimate, we encourage you to start using 2016.2 straight away.

As we have just recently switched to subscription licensing, some of you may still use older, pre-subscription licenses. If you are not sure whether your licenses are eligible to use with 2016.2, or if you need a formal quote or any other assistance, please get in touch with JetBrains sales anytime.

Get ReSharper Ultimate 2016.2

Comments below can no longer be edited.

40 Responses to ReSharper Ultimate 2016.2 is here!

  1. Mike-EEE says:

    August 18, 2016

    WOOOOOOOOOOOOHOOOOOOOOOOOOOOO!!! This has been the longest wait ever. Really hope the unit testing experience is worth the wait, and looking forward to all the other great improvements. Congratulations team!

    • Mike-EEE says:

      August 22, 2016

      OMG SOOOOOOOOO much better! Thank you so much for your work in this version, Team ReSharper and Team dotCover! xUnit testing works like a champ now. The green bar goes all the way across like you would expect, and it gets updated very regularly and no longer “sticks”. I have cancelled out of debugging sessions and it no longer loses its state (or rather, gets in a funky state and refuses to re-launch when I retest).

      REALLY GREAT JOB, team. Worth the lonnnnnnnnnnnng wait. 😛 You are doing good!

  2. JIm Schneider says:

    August 18, 2016

    Was just pranked by the Ctrl + Alt + Right, well done ReSharper! Hey what happened to my screen. lol

    • rosdi says:

      August 19, 2016

      Ctrl+Alt+Right isn’t a R# feature…

      • Sergey Coox says:

        August 19, 2016

        There is a feature in ReSharper. But what is most likely happened is Intel Graphics driver that rotates/ flips screen on Ctrl+Alt+Arrow key by default. You have to change its default keybindings in order to use the shortcuts in ReSharper

        • Maciej Świętochowski says:

          August 22, 2016

          If you don’t need screen rotation shortcut, then I recommend disabling the igfxCUIService1.0.0.0 windows service. This will disable igfxHK process from starting and won’t steal your key bindings. Simple disabling them in Intel Graphics options did not help. More on that:

        • Rosdi says:

          August 22, 2016

          You are right… I didnt know about this… I have disable the Intel hot keys and now can Ctrl+Alt+Right in #… yabedabedu………..

        • Mike-EEE says:

          August 22, 2016

          Help me out here. When I look at my CTRL-Alt-Right, it says it’s mapped to Table.ColumntotheRight.

          This is frustrating because I have on numerous occasions explicitly specified to use ReSharper/JIDEA keyboard scheme and it doesn’t seem to properly stick. Is this a known issue/bug? I would like to apply ReSharper keyboard shortcuts and have them apply, regardless of existing settings…

          • Sergey Coox says:

            August 23, 2016

            In Visual Studio scheme Ctrl+Alt+Right is bound ReSharper action called Extend Selection. In Idea scheme it is Ctrl+W.
            Table.ColumntotheRight is the action bound to Ctrl+Alt+Right by default.
            What ReSharper keyboard scheme are you applying?

  3. ReSharper Ultimate 2016.2  | OPC Diary says:

    August 18, 2016

    […] 情報源: ReSharper Ultimate 2016.2 is here! | ReSharper Ultimate Blog […]

  4. ReSharper Ultimate 2016.2 ist final – das ist neu - says:

    August 19, 2016

    […] EAP-Builds und ein Release Candidate – das stand vor dem aktuellen, finalen Release des beliebten .NET-Developer-Toolsets ReSharper Ultimate 2016.2. Zu den Highlights zählen der […]

  5. Richard says:

    August 19, 2016

    Did nobody notice that the “Structural navigation with Tab” animation ends up with code that will throw an exception?

    • andrey_dyatlov says:

      August 19, 2016

      Reverting for loop is not easy, that’s why ReSharper 2016.2 introduced the ‘Revert for loop’ context action which handles loop borders correctly.

  6. Hendrik says:

    August 19, 2016

    Would be cool if in a future release dotPeek would support dynamic assemblies.

  7. Stephan says:

    August 19, 2016

    The update completely broke IntelliSense in all my .cshtml files. How can I revert to 2016.1?

    • Stephan says:

      August 19, 2016

      Oh wait it’s not just .cshtml it’s also all .cs files in the ASP.NET Core project. Builds and runs fine though.

      • Jura Gorohovsky says:

        August 19, 2016

        Stephan, are you on VS 2015 Update 3 and .NET Core 1.0 RTM (as opposed to a pre-release .NET Core version)?

        • Stephan says:

          August 19, 2016

          I’m on VS 2015 Update 3 ASP.NET 5 RC 1 and dnx451 framework because RC2 and RTM broke directly referencing .dlls (I should have said so). If ReSharper doesn’t support this setup anymore I guess uninstalling it and installing 2016.1.2 again will fix it for me?

          • Slava Trenogin says:

            August 19, 2016

            Stephan, 2016.2 supports only ASP.NET Core 1.0 RTM, not RC1 or RC2. So, yes – downgrading is the only option for you.

  8. Dew Drop - August 19, 2016 (#2312) - Morning Dew says:

    August 19, 2016

    […] ReSharper Ultimate 2016.2 is here! (Daria Dovzhikova) […]

  9. Szumma #053 – 2016 33. hét | d/fuel says:

    August 20, 2016

    […] ReSharper Ultimate 2016.2 is here! […]

  10. Giuseppe says:

    August 20, 2016

    I’m not able to use GoToText feature when I press Ctrl+T+T+T on pressing second time T start previously runned Test session.

    When that combination can be used?

    • Jura Gorohovsky says:

      August 20, 2016

      Giuseppe, are you using ReSharper’s IntelliJ keymap?
      In the post and elsewhere, we use shortcuts from ReSharper’s default Visual Studio keymap. If you’re on the IntelliJ keymap, then you’d have to use Ctrl+N,N,N instead.

  11. Tadeusz says:

    August 20, 2016

    Now it is worse is some cases for MVC, i.e.: return View(vm) do no follows ActionName convenience to find the .cshtml file (when clicking with pressed Ctrl key) nor underlines the View/PartialViews if proper cshtml file exists – opposite to Views with more parameters.
    It again ugly reformats (by Ctrl-E C) *.cshtml files with JS sections — pushing each jQuery dot and each parameter in separate row — maybe following misleading some Linq formatting rules, etc.

    • Jura Gorohovsky says:

      August 20, 2016

      Tadeusz, can you please get in touch with the support team to help us reproduce the behavior and figure out what’s wrong? Thanks

  12. Rosdi says:

    August 22, 2016

    I love Ctrl+T,T,T

    • Mike-EEE says:

      August 22, 2016

      Ctrl-T, T is assigned to Repeat Previous Run. Also, I thought keyboard shortcuts chords were limited to only 2 keys? Sounds like I need to completely reset my settings or something. 😛

      • Jura Gorohovsky says:

        August 22, 2016

        Mike, if you’re using the ReSharper 2.x/Intellij keymap, Go to Text is mapped to Ctrl+N,N,N.

        • Mike-EEE says:

          August 22, 2016

          Ah geeze, Jura, you mentioned that right above in answering the same question by Giuseppe. Sorry to be that guy! Yes, that works wonderfully. I guess I am still confused on how you are able to go past 2 strikes in a chord, but this will do for now.

  13. Caleb Jares says:

    August 22, 2016

    Hello, I noticed that Resharper Build doesn’t work with .NET Core projects. Is that feature planned?

    • Anton Spilnyy says:

      August 24, 2016

      We plan to add optional support for this type of projects. So we will be able to build them, though tracking project changes when Visual Studio is closed will not be possible

  14. Douglas Neish says:

    August 27, 2016

    Will any of these features be coming to AppCode? Would love stuff like suggestions of symbols not in the current file and automatically adding the #include.

  15. ReSharper Ultimate 2016.2: 視訊與程式碼樣本 | Soft & Share says:

    August 30, 2016

    […] What’s new 列表 讀完太麻煩了,JetBrains的老朋友 Hadi Hariri 將現身為您做10分鐘的摘要視訊 […]

  16. Paulo Coelho says:

    August 31, 2016

    Resharper it’s some kind of disease which can only be solved by ctrl+a , delete.

    • Mike-EEE says:

      August 31, 2016

      Just because you have your teammates doing that with your code doesn’t mean you need to project it onto others.

  17. What’s New in ReSharper C++ 2016.2 | ReSharper C++ Blog says:

    September 14, 2016

    […] a part of ReSharper Ultimate 2016.2, our C++ team is happy to present the ReSharper C++ 2016.2 update. All in all, the new release […]

  18. Fakhrulhilal Maktum says:

    October 4, 2016

    When will R# support NUnit for .NET core?

  19. Tab selects text instead of indenting in Visual Studio – OhadSoft says:

    December 4, 2016

    […] turns out that Resharper Ultimate 2016.2 introduced a new Structural navigation feature (enabled by default) that makes tab move text selections instead of indenting when pressed […]

  20. Jarryd says:

    December 29, 2017

    Who’s the idiot who screwed with Tab? Goddamn this irritating default setting. Seriously, shame on the utter f-wit who implemented this trash.


Subscribe to .NET Tools updates