ReSharper 2024.3

Released: Nov 13, 2024

Updates in 2024.3

Funktionen

C# Support

  • C# 13 updates  - With its latest release, ReSharper introduces support for the latest features that come with C# 13, namely:
    • New params collections: The params keyword has been expanded to work with various collection types, allowing for more efficient method signatures without additional allocations.
    • Partial properties: Support has been added for partial properties, enabling you to spread property accessor implementations across multiple files, increasing flexibility and organization in your codebase.
    • New lock type: The new System.Threading.Lock type has been introduced for more efficient thread synchronization, improving performance over the traditional lock statement.
    • Overload resolution priority: A new attribute is available, providing better control of method overload resolution and allowing developers to prioritize which overload gets called in complex scenarios.
    • Field Keyword: The preview feature has been added to the field keyword. This gives direct access to the backing field of auto-properties, simplifying property logic.

Code styles and cleanup

  • Code cleanup
    • In ReSharper 2024.3, code cleanup has been re-engineered for more robust performance. It now leverages the same engine as scoped quick-fixes, ensuring thorough issue resolution and enhancing analyzer precision. Parallel preprocessing has also been added to optimize file handling. Furthermore, you can now select the code cleanup profile per file or skip cleanup on specific files.
  • Code formatting - There are new formatting options to give you even more flexibility:
    • A new option to control wrapping around an equal = operator.
    • A new Indent ‘break’ from ‘case’ option.
    • A new Treat ‘case’ statements with ‘break’ as simple option.
  • Naming styles - JetBrains have added a couple of new options to adjust naming rules more precisely.
    • Local functions now come with two options: Local functions with ‘async’ and Task-returning local functions (not ‘async’).
    • Methods have been given a new Task-returning method (not ‘async’) option to support methods with an async suffix in the name that aren’t marked with an async modifier but return a Task-like type. This is helpful when you declare a method in an interface where you aren’t allowed to use an async modifier, but which will return a Task type in implementation.

Code comments

  • Multiline To-do comments support
    • ReSharper 2024.3 now supports multiline To-do comments, allowing indented text on subsequent lines to be treated as part of the same To-do item. This enhancement makes it easier to group related notes and tasks together in your codebase. You can now add context to your To-dos across multiple lines, improving readability and organization.
    • Additionally, JetBrains have updated the Peek To-do link (Ctrl+Shift+click) action that lets you look up an external issue associated with a To-do item inline. It now uses a modern web browser engine to give you a better rendering experience.

User experience

  • Tooltip colorization
    • For this release, JetBrains reviewed almost all C# error, warning, and informal messages and introduced text colorization wherever possible.
    • Approximately 600 messages were updated with tooltips that offer a more intuitive reading experience, with the included code elements highlighted in the editor's familiar color scheme.

C++ support

  • ReSharper 2024.3 includes several improvements to C++ support:
    • Improved performance in large solutions.
    • The Move to Folder refactoring for C++ files.
    • Support for new C++23, C23, and GNU language features.
    • New code assistance features for Unreal Engine developers.
    • Enhanced interoperability with Clang tooling.

Decompiler

  • IL code for assembly manifest
    • The IL Viewer tool window now provides IL code for assembly manifest, including:
      • Assembly and module info such as name, custom attributes, etc.
      • Referenced assemblies and modules.
      • Forwarded types.
      • A list of files and resources.
    • This IL code is shown when the caret in the text editor is on an assembly or module attribute or somewhere inside an <AssemblyName>.cs file for external assemblies.
  • Support for primary constructors
    • When working with classes that declare a primary constructor, the decompiler will now display the constructor and its parameters correctly, giving you a complete view of how objects are instantiated directly from the decompiled code.