What’s New in ReSharper 2024.2

ReSharper 2024.2 introduces support for .NET 9 Preview SDK, including an initial set of C# 13 features such as ref struct interface implementation, the new \e escape sequence, and a params modifier refactoring. C++ support now includes C++23 features, type layout information in tooltips, and improved Unreal Engine project support. This release also includes the first stage of localization for Chinese, Korean, and Japanese, asynchronous typing for better performance, and AI Assistant enhancements with improved language models, in-editor code suggestions, and new Explain with AI capabilities.

Download

Free 30-day trial available

Support for .NET 9 Preview SDK

ReSharper 2024.2 comes with support for .NET 9 Preview SDK, including initial support for C# 13 features, such as the new escape character, a params modifier refactoring, and ref struct interfaces.

C# support

With its latest release, ReSharper deepens support for C# 12 features, including primary constructors, enhanced collection expressions, and improved context actions for array creation and collection type conversions. Additionally, ReSharper 2024.2 introduces initial support for C# 13, featuring ref struct interface implementation, the new \e escape sequence, and a params modifier refactoring.

This update also brings:

  • Enhanced equality analysis for struct types.
  • The Extract common code inspection for reducing duplication in branching constructs.
  • Culture previews in ToString() format specifier code completion.
  • Cast expression analysis to replace fragile C-style casts with explicit type annotations.

Check out this blog post to dive into the latest updates to C# support introduced in ReSharper and Rider 2024.2.

C++ support

Notable enhancements in C++ support include:

  • Support for additional C++23 features, including the multidimensional subscript operator, #elifdef and #elifndef preprocessor directives, and the [[assume]] attribute.
  • Tooltips and the quick documentation popup now provide detailed information about type layout for classes and class fields, including size, alignment, offset, and padding.
  • In Unreal Engine projects, ReSharper recognizes struct traits, ensuring that your structs have the required methods and quickly generating them if they are missing. A new inspection detects missing calls to base class methods.
  • The Rename refactoring adds new options to rename related files and types when renaming a file.
  • Improvements to code analysis include an update to Clang-Tidy 18 and support for IWYU pragmas.

Learn more about the C++ updates: What’s New in ReSharper C++ 2024.2.

Localization

ReSharper 2024.2 introduces the first stage of localization into Chinese, Korean, and Japanese! You’ll get a partially localized UI, code inspections, tool windows, and notifications. To localize ReSharper, go to ReSharper Options | Environment | General | Localization | Interface language and choose your desired option from the dropdown list.

Alternatively, you can install the localization plugin via Extension Manager. You can find the full instructions here.

Performance

Asynchronous typing enabled

Asynchronous typing is part of an ongoing effort to improve ReSharper’s performance by enabling it to run out of process with Visual Studio. ReSharper 2024.2 is the first version of the product to feature this important change. Our internal tests show that enabling asynchronous typing facilitates a marked improvement in the smoothness of the typing experience. We’d love to hear about your perceptions over on our issue tracker.

AI Assistant

Updated models and context collection

We have upgraded from the older GPT 3.5 and GPT 4 models to GPT-4o and Google Bison, depending on the task. Additionally, our context collection for AI completion and AI chat has been updated to deliver more relevant results with this new model.

Ask AI

You no longer need to open the AI chat whenever you have a new question for AI. Simply invoke Ask AI and ask away.

In-editor code suggestions and code generation

JetBrains AI now hints where you can generate XML documentation or implement empty methods with a single click (or by hitting Alt+Enter). This eliminates the need to manually search for these options in the actions list.

Moreover, instead of redirecting you to the chat, AI will provide answers directly in the editor. You can easily review and regenerate them if needed or specify additional details in place to achieve better results.

Improved UI/UX in AI code completion

We've enhanced the presentation of our AI suggestions, making it easier to distinguish ReSharper’s AI multiline completion suggestions from other elements. You can now also regenerate results by hitting Shift+Tab.

AI naming suggestions in Rename and Extract method

Naming variables and methods can be challenging, especially in large solutions with numerous similarly named symbols. Thankfully, AI now suggests the most suitable names when you rename a method.

Explain with AI for debugging and DPA

You can now ask AI to explain any exceptions encountered during your debug session without leaving your current context. Just hit the button next to the exception to get the explanation in the chat.

AI Assistant will also be able to explain any issues related to memory allocation and database problems identified by Dynamic Program Analysis (DPA). After DPA identifies an issue, you can click on the Explain with AI button: The AI, being code-aware, analyzes the context of the issue, provides an explanation, and suggests possible fixes. Currently, you can do this only for memory and database issues.

dotMemory

dotUltimate

Improved instance search

We’ve added new filtering options to the Instances view:

  • Search by string value: Type any string value into the filter field, and dotMemory will highlight matching strings. This makes it easier to find specific string instances based on their content.
  • Regex support for string values: Use regular expressions for more advanced searches. For example, ^nAsso.{5,}ID$ matches nAssociatedObjectID.nAssociatedObjectID.
  • Search by object address: You can also search for object instances by their memory address. This is useful for tracking specific objects directly.

Learn more about improvements to the dotMemory profiler here.

dotTrace

dotUltimate

The latest update to the performance profiling tool brings:

  • Improved performance with faster processing of Timeline snapshots.
  • A new rendering engine in dotTrace Viewer on all platforms.
  • An Options window added to the standalone version for macOS and Linux.
  • Fixed missing kernel events in Timeline snapshots on Windows.
  • Various minor improvements and bug fixes.

Learn more about improvements to the dotTrace profiler here.

Decompiler

General enhancements

  • Lambda parameters: We’ve introduced support for decompiling lambdas with optional and parameter-array parameters, enhancing the readability and accuracy of decompiled code.
  • Attributes on lambdas: The tool now offers improved handling of attributes on lambda expressions to ensure that all relevant metadata is accurately reflected in the decompiled output.
  • Protected assemblies: We’ve introduced the ability to specify whether you’d like to decompile protected assemblies, allowing more comprehensive code exploration.

Build configuration detection

The Assembly Explorer tool window now detects and presents the build configuration of assemblies, providing clearer insights into the assembly’s compilation context.

Handling of external sources

  • PDB with SrcSrv and SourceLink: The decompiler now supports navigating to sources from PDB files containing both SrcSrv and SourceLink.
  • Preprocessor directives: The decompiler now correctly recognizes preprocessor directives (like NET6_0_OR_GREATER) from the target framework or Portable PDB of the associated assembly, ensuring accurate code representation.
  • Open in Browser action: You can now navigate to the source code in the repository for types or to a repository for NuGet packages or assemblies.