.NET Tools Early Access Program Releases ReSharper Platform

ReSharper 2024.1 EAP 6: The Most Feature-Rich Update Yet

The latest installment in the Early Access Program for ReSharper 2024.1 has just been released, and it’s jam-packed with exciting updates.

Let’s take a look at some of the highlights:

Performance

Faster Rename refactoring

Renaming elements in your code is now faster and more efficient. This change also affects other core components of ReSharper, leading to performance improvements across multiple features, including Find Usages.

C# support

Enhanced support for disposable resources in async methods

  • [MustDisposeResource] Annotation improvements: ReSharper now ensures that resources returned by async methods, including those wrapped in Task<IDisposable> and ValueTask<IDisposable>, are disposed of correctly, helping you avoid unintended disposal of the task itself.
  • Task-like return values: Correct analysis for task-like return values in ReSharper 2024.1 ensures the awaited resource is checked for disposal, now including resources retrieved via .ConfigureAwait(...), .AsTask(), or .Result.

C++ support

Documentation comment сonfiguration

You can now easily specify the style of documentation comments without the need to edit a live template. To configure the style of documentation comments, go to ReSharper’s Settings | Code editing | C++ | Code generation.

Internal module partitions support

C++20 module support in ReSharper has been updated to support internal partition units.

Code formatting

The ReSharper 2024.1 EAP 6 build brings a couple of notable changes to code formatting:

  • Improved UX/UI for custom naming rules. The changes should make it easier to work with advanced naming rules and view rules that were imported from EditorConfig files.
  • There’s now a new formatting setting that allows you to either leave or remove spaces in blank lines.

Decompiler

A new dedicated Assembly Diff tool window

The 2024.1 update introduces the new Assembly Diff tool window to ReSharper and the standalone dotPeek decompiler tool. There are a few changes that come with it:

  • The ability to compare assemblies, NuGet packages, folders, and .zip archives has been moved from the Assembly Explorer to the Assembly Diff tool window.
  • The diff mode selector, Compare and Diff Options buttons can now be found on the action bar of the Assembly Diff tool window.

Here is how you can access the Assembly Diff tool window and invoke assembly comparison:

ReSharper: In the main menu, go to Windows | Assembly Diff or Tools | Compare Assemblies

dotPeek: In the main menu, go to Windows | Assembly Diff or File | Compare… .

dotMemory

Support for Frozen Objects Heap (FOH)

The standalone dotMemory profiling tool now offers support for Frozen Objects Heap (FOH) – a feature first introduced with the .NET 6 SDK as part of the performance improvements for garbage collection.

FOH allocates a dedicated memory area for immutable objects. These objects, which do not change after being allocated, are not subject to garbage collection. Support for this technology enables dotMemory to perform a more detailed analysis of memory used by immutable objects in the FOH, boosting the optimization of memory usage.

Extensions manager

JetBrains Marketplace has now adopted a new filtering mechanism in the plugin’s feed that is based on compatibility checks. This means that ReSharper will no longer display incompatible plugins in the Extensions manager.

That’s it for this week!

You can find the full list of changes included in this build on our issue tracker

As always, your feedback is essential to us!

Please share your thoughts on the latest updates by leaving a comment on this blog post or by getting in touch with us on Twitter.

image description

Discover more