What’s Next: ReSharper C++ 2020.3 Roadmap

Posted on by Elvira Mustafina

Recently we released ReSharper C++ 2020.2 with lots of bug fixes and updates for C++/CLI and Unreal Engine support – we hope you’ve already checked it out and are ready to see what we have in store for the future!

Today we want to share our plans for the final release of this year. Our main priorities are almost unchanged – performance, C++, and Unreal Engine – but let’s take a closer look.

Please note that the following is only a preliminary plan. We cannot guarantee that all of the features and enhancements listed below will be included in ReSharper C++ 2020.3.

C++20

We’re taking the final steps toward C++20 compliance. In this release, we’re planning to work on support for the following new language features:

  • Class template argument deduction for aggregates and non-type template parameters – Accurate parsing, eliminating false positives, integration with major ReSharper features.
  • Modules – This particular feature might not be ready for the 2020.3 release, but we’re certainly going to carry out at least primary infrastructure tasks.
  • The ranges library – Adding a set of inspections and quick-fixes to modernize your code.

Performance

Adding support for more sophisticated cases can sometimes offset significant performance optimizations, so we are continuing to search for better ways to improve performance. In this release, we’ll work on optimizations in the following areas:

  • Code completion and import completion.
  • Behind-the-scenes magic: optimizations for parsing and resolving.

We’re also continuing to work on ReSharper out of process. You can track our progress here.

Unreal Engine

Since ReSharper C++ powers Rider for Unreal Engine, we now get more feedback and, of course, bug reports. So our plans here include fixing bugs, but we plan to throw some cool features in as well:

  • Integration with UnrealHeaderTool – A set of UnrealHeaderTool inspections and even some quick-fixes for common issues.
  • Unreal Engine project model – Polishing our initial support for the Unreal Engine project model and improving more features that can benefit from the model information.
  • Adding more Unreal Engine options to code generation actions.

Refactorings

Move, one of the most frequently used ReSharper refactorings, is finally coming to C++. Move is a very powerful set of refactorings with lots of options for what can be moved and where it can go. In this release, we aim to address moving to another file and moving to another namespace (including to a new namespace).

We’re also planning to implement many other interesting features, such as context actions to convert inline hints into text, navigation from the override keyword, gutter navigation marks for long preprocessor blocks, upgrades for Clang-Tidy and Catch, and much more. The Early Access Program is starting soon, so stay tuned and sign up so that you can be among the first to try all this new stuff out!

Don’t see a feature you’d like us to implement? You’re very welcome to submit and upvote feature requests in our issue tracker, and we’ll do our best to make the upcoming release more enjoyable for you!

Your ReSharper C++ team
JetBrains
The Drive to Develop

Subscribe

Subscribe for updates