Dotnet logo

.NET Tools

Essential productivity kit for .NET and game developers

.NET Tools Early Access Program

ReSharper 2024.3 Starts its Early Access Program! 

Say hello to the first build of ReSharper 2024.3 Early Access Program! This build is mostly about improving C++ support, but it still has something new for C# developers as well. Let’s have a look!

ReSharper 

Code Cleanup

Now you can substitute a default Code Cleanup profile with another one for particular files via .editorconfig files as well as specify files you want to omit from code cleanup. (RSRP-493872).

[fullToReformat.cs]
resharper_substitution_for_cleanup_profile.icanwriteanythinghere=Built-in: Full Cleanup => Built-in: Reformat Code

[anyToReformat.cs]
resharper_substitution_for_cleanup_profile=* => Built-in: Reformat Code

[fullToSkip.cs]
resharper_substitution_for_cleanup_profile=Built-in: Full Cleanup => skip

[anyToSkip.cs]
resharper_substitution_for_cleanup_profile=* => Skip
Copy to clipboard

Naming Styles 

We’ve added a couple of new options to adjust naming rules more precisely. 

  • Local functions now have Local functions with ‘async’ and Task-returning local functions (not ‘async’) options to choose from (RSRP-493613). 
  • Methods got 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 (RSRP-482529). 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.

Another new option is Warn about using prefixes and suffixes from this rule in unrelated identifiers (RSRP-485170). In previous versions, if you specified an Async suffix in a Methods rule, and if no Properties rule had this as a suffix, ReSharper would complain about a property with an Async in the name. In other words, ReSharper prohibited you from using this suffix in entities other than methods. Starting from the 2024.3 EAP, you can disable this option in the Methods rule, and ReSharper stops complaining about property names with these kinds of suffixes.

Formatting

There are new formatting options to give you even more flexibility:

  • A new option to control wrapping around an equal = operator (RSRP-491099).
  • A new option Indent ‘break’ from ‘case‘ (RSRP-478502).
  • A new option Treat ‘case’ statements with ‘break’ as simple (RSRP-469180).

ReSharper C++

The first EAP build brings several notable updates to C++ support.

  • The Move to Folder refactoring now also handles C++ files.
  • Support for literal suffix for size_t and attributes on lambda expressions from C++23, the C23 typeof and typeof_unqual operators, and the C++17 std::has_unique_object_representations type trait.
  • A number of improvements for users of the C++20 ranges library.
  • Support for // clang-format off/on comments to disable or enable code formatting.
  • Typing assist to automatically insert a space between control flow keywords and the opening parenthesis.
  • Built-in live templates to generate UE_LOG and UE_LOGFMT logging statements.
  • An option to use XML documentation instead of Doxygen.

For more details on the ReSharper C++ updates, see the dedicated blog post.

That’s it for today! You can find the full list of features and fixes on YouTrack.

image description