ReSharper Ultimate 2016.1 (formerly 10.1) EAP 6

Posted on by Dmitry Matveev

Hello everyone. This week we have published a new EAP build of ReSharper Ultimate 2016.1 (formerly referred to as ReSharper Ultimate 10.1), bringing new fixes and improvements.

(If you’re wondering why a sudden change of versioning, please see JetBrains Toolbox — Release and Versioning Changes.)

Below is what we have added in this latest build.

ReSharper

Out-of-the-box xUnit.net support

The xUnit.net test framework has seen a large rise in popularity recently, including being the framework of choice for Microsoft’s cross platform, open source .NET Core project, and is the officially supported way of running tests for DNX projects.

While ReSharper has had support for xUnit.net for many years, it has always required installing a separate extension. Starting with EAP 6, ReSharper now provides support for xUnit.net directly in the product. This means ReSharper will discover your tests, and allow you to run and debug them, right from the editor, without requiring any extra extensions.

Furthermore, ReSharper Ultimate users will also be able to profile tests, get code coverage and use xUnit.net in Continuous Testing sessions.

One thing to note is that this build does not yet support running tests for DNX projects, this will hopefully be included in a future build.

New code style features

There are two new features to further extend the level of detail of your code style. As usual with code style, the new features are configurable and can be applied as part of code cleanup.

Using named/positional arguments

Consider the following method call:

AddCheckbox(true, true, "AutoFill", null);

When you read this code, you have to stop and examine the method signature to understand what happens here. With named arguments, the call becomes much clearer:

AddCheckbox(enabled: true, value: true, label: "AutoFill", tooltip: null);

Now, if you prefer to have named arguments for specific types, you can do so with a little help from ReSharper. In the Code Editing | C# | Code Style page of ReSharper options, define for which types of parameters you prefer to use named arguments, and the corresponding suggestions will be added to the list of quick-fixes:

Code style for named/positional arguments

In addition, even if you do not have any style preferences for arguments, you can always press Alt+Enter on any named or positional argument and choose to add or remove the argument name.

Braces for single-line statements

C# specification allows you to safely omit braces around single nested statements in some parent statements, e.g. if-else, foreach, etc. However, code style guidelines may differ in this regard: some consider the braces here as a requirement, some consider them redundant.

Whatever style you prefer, ReSharper now helps you have consistent use of braces throughout your code base. Preferences for each kind of code block can be configured separately in a code style options page, and ReSharper makes sure to respect these preferences:

Braces style for single-line statements

Here is the full list of fixes for ReSharper in this EAP build.

dotCover

This build brings some bug fixes and a few UI improvements to the Continuous Testing Session window. Quick search results are now highlighted in the coverage tree, and a button is added to explore the stack trace of the selected test in Stack Trace Explorer:

Improvements in Continuous Testing window

dotMemory Unit 2.2

There is another small improvement that have to do with dotMemory Unit. While only constant values can be used when initializing attribute properties, there was a problem of defining user-specific directories for DotMemoryUnitAttribute.Directory property when saving workspaces. Now there are three new constants that evaluate to %USERPROFILE%, %APPDATA%, and %LOCALAPPDATA%. You can either use the constants from the SpecialDirectory class, e.g:

[DotMemoryUnit(Directory = SpecialDirectory.User + "MySubDirectory")]

or simply write one of these constants in angle bracketes (<User> | <CommonApplicationData> | <LocalApplicationData&gt), e.g:

[DotMemoryUnit(Directory = @"<User>/MySubDirectory")]

The mandatory call to action

If you haven’t done it already, please download the latest ReSharper Ultimate 2016.1 EAP build.

To provide any feedback, please use the comments here or report problems to issue trackers of affected products: ReSharper, ReSharper C++, dotTrace, dotCover, dotMemory, dotPeek.

Comments below can no longer be edited.

13 Responses to ReSharper Ultimate 2016.1 (formerly 10.1) EAP 6

  1. Jeffrey Parks says:

    March 17, 2016

    This article and the article for EAP 5 both have a typo of “DoMemory” instead of “DotMemory” in a section header.

    I’m looking forward to ReSharper 2016.1!

    • Jura Gorohovsky says:

      March 17, 2016

      Thanks for noticing, Jeffrey, both typos are now corrected.

  2. Wim De Ceuster says:

    March 18, 2016

    Any support for F# planned?

    • Dmitry Matveev says:

      March 18, 2016

      Hi Wim,
      In short, not in the nearest future. The details are in the corresponding request.

  3. The Morning Brew - Chris Alcock » The Morning Brew #2055 says:

    March 18, 2016

    […] ReSharper Ultimate 2016.1 (formerly 10.1) EAP 6 – Dmitry Matveev […]

  4. Dew Drop – March 18, 2016 (#2211) | Morning Dew says:

    March 18, 2016

    […] ReSharper Ultimate 2016.1 (formerly 10.1) EAP 6 (Dmitry Matveev) […]

  5. jQuery-Updates & ReSharper Ultimate 2016.1 EAP 6 says:

    March 18, 2016

    […] 2.2 überarbeitet und Verbesserungen unterzogen. Ausführliche Informationen bietet der zugehörige Blogpost; dort steht ReSharper Ultimate 2016.1 EAP 6 auch zum Download zur […]

  6. David Peden says:

    March 21, 2016

    Can you guys please provide some clarity on when we can expect proper DNX/dotnet support?

    https://github.com/xunit/resharper-xunit/issues/38

    For the statement:

    One thing to note is that this build does not yet support running tests for DNX projects, this will hopefully be included in a future build.

    Does “hopefully be included in a future build” mean in a future build of 2016.1 or something beyond?

  7. Chris Marisic says:

    March 21, 2016

    xUnit: ABOUT TIME.

    Using named/positional arguments: that’s an absolutely great addition. I’ve been using this for years and for years have been fighting resharper to make sure it doesn’t remove my named arguments as “redundant”.

  8. Jeff says:

    April 5, 2016

    I have been eagerly awaiting Typescript 1.8 support but have been reluctant to install the EAP’s because of the “Please note that the installer will remove all previous installations of ReSharper and other JetBrains .NET tools from Visual Studio.” comments. Does installing an EAP version preserve all of my settings? Is reverting back to my current R# version just involve uninstalling EAP and re-installing my current version?

    • Dmitry Matveev says:

      April 6, 2016

      Hi Jeff,
      Exactly, reverting back from a EAP build to your current R# version only involves re-installing your current version.
      All your settings are kept separately from binaries. Global settings are here: %AppData%\JetBrains\Shared\vAny\GlobalSettingsStorage.DotSettings, and solution-wide settings are next to the solution file in [snlName].sln.DotSettings and [snlName].sln.DotSettings.user files. Please do try the EAP build and let us know whether Typescript 1.8 support suits your expectations.

  9. Neil says:

    April 27, 2016

    Whats happened to the StyleCop extension in R# 2016.1?

    • Matt Ellis says:

      April 28, 2016

      It needs to be updated to work with the new version of ReSharper. I’m working on it right now, and it should be released tomorrow.

Subscribe

Subscribe to .NET Tools updates