ReSharper Ultimate Starts Its Early Access Program for 2020.2!

Posted on by Asia Rudenko

Hello everyone,

We’re excited to introduce the first EAP build of ReSharper Ultimate 2020.2!

2020.2-Banner

Here’s what we have in store for you.

ReSharper 2020.2 EAP1

  • Nullability code analysis is learning about more cases – it can now trace the incorrect nullability through deconstruction and the foreach cycle, and it provides a quick-fix:

Nullability-fix

  • Context actions for converting foreach to LINQ and LINQ to code are available on IAsyncEnumerable<T> as well – just install the System.Linq.Async NuGet package for your project.

Foreach-to-LINQ-async

  • Support for default implementations in interfaces has gotten better: our indicators show that a method is implemented and overriden, and our refactorings and navigation are now smarter about this language feature.
  • Good news for UWP developers: support for compiled bindings with x:Bind is finally on its way! ReSharper resolves the x:Bind code correctly and offers inspections and quick-fixes – for example, for missing property setters or overload collisions. More improvements are coming, and we welcome your feedback in our public issue tracker.

x-Bind-support

  • In 2020.1, Rider migrated from Mono to .NET Core on macOS and Linux. One of the many advantages of this move is that you can now install ReSharper Command Line Tools as a .NET Core global tool. Run the following command to install them:
    dotnet tool install -g JetBrains.ReSharper.GlobalTools --version 2020.2.0-*

    And run the tool with jb tool_name [options], for example:

    jb inspectcode yourSolution.sln -o=

    Because Command Line Tools now run on .NET Core, they no longer come with Mono bundled. Please note that the tools for macOS and Linux now require .NET Core 3.1.

  • Navigating to usages of types from external assemblies in your code is now much easier. ReSharper can take you straight from Go to Type search results to Find Usages. Search for the type you’re interested in, highlight it in the list with keyboard or mouseover, and call Find Usages or Go to Usage by using their respective shortcuts. Here’s an example:

Actions from Go to Symbol

    Other actions, such as calling quick documentation, are also now available from Go to Symbol and Go to File Member using shortcuts.
  • Inlay hints are now available in XAML code too. We provide hints for markup property names and DataContext, as well as for margins and paddings, which can be handy if you don’t want to memorize their orders.

Inlays in XAML

  • For .editorconfig users, we’ve taught ReSharper to follow dotnet_diagnostic rules. Specify the severity of inspections in your .editorconfig file, i.e. dotnet_diagnostic.CS1058.severity = hint, and ReSharper will display those inspections accordingly.
  • Our Blazor support is getting better all the time – we’ve eliminated a lot of known erroneous red code and improved performance.
  • And we’ve implemented a variety of performance updates for code cleanup.

Interested in fixed issues more than new features? Visit this page to see all the closed requests.

ReSharper C++ 2020.2 EAP1

The main highlights of the ReSharper C++ 2020.2 EAP1 build are:

  • For Unreal Engine, ReSharper C++ introduces experimental support for the Unreal Engine project model, new inspections, and improvements for Find Usages and code generation. Also, it is now in better alignment with the UE code style:

unreal_override_virtual-updated2

  • C++/CLI support has new inspections for gcnew and final and searches for inheritors and usages in C# code too.
  • For code style and formatting, ReSharper C++ provides settings for multiline ternary operators and sorting of include directives.
  • Other improvements include a preview for small quick-fixes, better evaluation of constexpr functions, new file templates, and more.

Please refer to this separate blog post for an overview of all the C++ changes we’ve made in the first EAP.

dotPeek 2020.2 EAP1

As usual, dotPeek continues to improve its support for the most recent versions of C#. In dataPeek 2020.2 EAP1, the decompiler engine now supports:

  • Expression-bodied members.
  • Throw expressions.
  • Default parameters and named arguments.

Additionally, NuGet packages are finally sorted alphabetically in the Assembly Explorer.

And last but not least, the “Generate PDB” engine now infers and stores the tuple component names for local variables.

dotMemory 2020.2 EAP1

The dotMemory Command-Line Profiler has come to macOS and Linux to help you analyze memory usage in your .NET Core applications. We are going to publish a related blog post soon that will provide more detailed information about it. For now, you can run ./dotMemory.sh help for a list of available commands and arguments.

As for standalone dotMemory, you can now open all pinned objects as a separate object set.

We’d love to hear your feedback!

Download ReSharper Ultimate 2020.2 EAP

Note: In 2020.2, we change the way third-party tools should be integrated with JetBrains .NET tools: dotTrace, dotMemory, and dotCover. If you are a developer of such a tool, please update the integration according to the following articles: dotTracedotMemorydotCover.

Comments below can no longer be edited.

8 Responses to ReSharper Ultimate Starts Its Early Access Program for 2020.2!

  1. Dmitry says:

    June 9, 2020

    >Navigating to usages of types from external assemblies in your code is now much easier…

    This new feature is a great time saver, thank you!

    • Asia Rudenko says:

      June 9, 2020

      Glad to hear it, thanks 🙂

  2. Jesper says:

    June 9, 2020

    > We provide hints for markup property names and DataContext, as well as for margins and paddings, which can be handy if you don’t want to memorize their orders.

    Right now they show as [l:], [t:], etc – since they don’t have to be syntax at all, how about ←, ↑, etc?

  3. Fredy Ferrari says:

    June 9, 2020

    I love the new inlay hints for XAML!!!!!

    • Asia Rudenko says:

      June 9, 2020

      Cool, thanks! 🙂

  4. Jeff Chen says:

    June 10, 2020

    Is
    ‘we’re now working on moving our text editor integration out of process’
    in this 2020.2 EAP ?

    • Asia Rudenko says:

      June 26, 2020

      Hello Jeff, sorry for delayed response! There’re big changes under the hood in 2020.2, and they bring us significantly closer to out of process mode. However they stay under the hood for now. Thanks for your interest, as soon as we have something visible to our users – we’ll make a huge announcement about it.

Subscribe

Subscribe to .NET Tools updates