.NET Tools How-To's

ReSharper 2021.2 Roadmap

In this post, we’ll see what the ReSharper team is working on for the upcoming 2021.2 release. The features in this post are in addition to ongoing efforts expressed in the 2021.1 roadmap blog post, such as Out of Process, C# 9 and C# 10, and Entity Framework N+1 analysis. We’ve also recently announced the ReSharper C++ 2021.2 roadmap.

As always, this is an early access roadmap, and priorities and features are subject to change. Let’s get started, and please, let us know your feedback!

Code Analysis

Code analysis of C# 9 syntax continues to be a significant focus of our ReSharper improvement efforts. Developers using C# 9 syntax such as local functions and closures should see a considerable performance increase in code analysis. We’ve also improved code analysis for complex switch statements.

Razor & Blazor

Razor users working on large views will be able to turn off CPU-intensive assistance and automatic suggestions in the chance that the editor begins to lag.

Blazor users will also see more support for keyword attributes, such as @onclick, @bind, @bind-style, etc. These attributes will include code completion and suggestions similar to other existing attributes.

Finally, we’re working to fix support for local function parsing in Razor files.

Source Generators

VB.NET users will now see support for source generators similar to the experience C# developers have had, with the ability to decompile and step into generated source files.

Nullable Reference Types

In the upcoming release of ReSharper, we continue to improve support for nullable reference types (NRTs). We’ve added a wide array of quick fixes, code analysis, and postfix templates to make working with NRTs as productive as possible. 

A notable enhancement allows developers already using compiler annotations of [DisallowNull]/[AllowNull]/[MaybeNull]/[NotNull] to translate occurrences to the NRT syntax. The quick fix additions help modernize an existing codebase quickly and efficiently, moving from attributes to C# 9 syntax. Additionally, JetBrains.Annotations users will get quick fixes to help move to NRT syntax when applicable.

Finally, developers who adopt NRTs may be using nullable warning suppressions (!) as they upgrade. Nullable suppressions remove warnings, but developers might misapply them as well. ReSharper 2021.2 is adding the ability to find all nullable warning suppressions in an existing solution.

Navigation Features 

Navigating and understanding a codebase has always been one of ReSharper’s greatest strengths. We’ve made two improvements to help developers during the debugging process.

First, during a debugging session, when triggering Go To Declaration on interfaces, ReSharper will navigate developers directly to implementations. Second, ReSharper will include hidden overrides when navigating to base implementations.

Code Styling

Code styling has some nice quality-of-life improvements coming. including but not limited to:

  • Support for Pico style.
  • Specifying advanced rules for records, extension methods, and the variable names in catch blocks.
  • Change default formatting preferences to align with Visual Studio defaults.

dotPeek (decompiler)

Let’s talk about improvements coming to our decompiler: dotPeek. It’s a standalone tool, and also comes as part of ReSharper and Rider.

We’re adding support for single-file applications, and the ability to inspect the contents of the application. We want to support developers choosing single-file deployment as their preferred delivery approach.

Work is also being done to support decompiling async streams (await foreach) and async disposables (await using).

Visual Studio 2022 64-bit

The next version of Visual Studio will be 64-bit! We wrote about our expectations and plans a while ago.

We’ve already done the work to build, test and run the entire ReSharper codebase on 64-bit as part of Rider. After we get a preview release of Visual Studio 2022 to try things out, we’ll integrate ReSharper with the new Visual Studio as soon as possible.

Special thanks to EAP users

The Early-Access program is most helpful when developers like you get involved. For that, we are truly grateful for the folks who take the time to try out EAP versions of our products, and provide feedback.

We’ve rewarded the most active participants during our previous EAP with a complimentary 1-year personal license licenses to our dotUltimate products (your YouTrack username is listed if we do not know your full name):

  • Matthias Busch
  • Manus Hand
  • Pang
  • Eamon Nerbonne
  • Scott Munro
  • Pepijn Van der Heyden
  • Mike-E
  • centreboard
  • Oliver Ehrenmüller
  • Alexander Rezunov
  • Raffael Casagrande

Thank you for helping us identify issues, usability glitches, and missing features in the Early Access Program!

Conclusion

As .NET evolves with improved syntax, we want to make sure ReSharper is there to educate and support users on their development journey. This post is only a tiny portion of the work we are investing in ReSharper. The four pillars of our work continue to be language features, architecture, performance, and fixes.

We hope you found something interesting in this post, and since we’re very close to opening this round of EAP, we hope you try it out. Let us know what you think, and please give us your feedback, suggestions, and ideas.

image description