ReSharper 2023.2 EAP 7 Introduces a Predictive Debugger and Other Updates
It may seem like the Early Access Program for ReSharper 2023.2 reached its peak when we unveiled AI Assistant earlier this week. To anyone thinking that, we say, “Hold on! There are more surprises up ReSharper’s sleeve.”
The EAP 7 build has just been released, and it contains a couple of major new features, as well as smaller improvements. Let’s take a look!
Predictive debugger (Beta)
During regular debugging, once a breakpoint is hit, you are only able to observe the program’s current state. The problem is that executing a program causes side effects and state changes, which may require you to debug for all additional scenarios.
The predictive debugger mode we’re introducing in ReSharper 2023.2 is able to foresee all possible states triggered by executing a program without having to actually execute it, making it able to:
- Show the expected values of the variables.
- Visually “mute” parts of the program that will not be executed.
- Warn you that further execution will end with an exception.
The predictive debugger will offer a new level of insight into your program’s execution. It will also enable you to experiment with different values and troubleshoot your code without having to restart the debugging process for each change.
You can enable the predictive debugger by going to ReSharper | Options | Debugger | Show predicted values (beta).
This debugger is currently in the Beta state, which means your feedback is crucial for it to reach its full potential. Please make sure to report any bugs you encounter to our issue tracker, along with any suggestions or requests you may have.
Navigating and Creating Unit Tests
ReSharper’s Unit Testing receives a major update as well. In EAP 7, we’ve merged a feature to navigate and create tests for your production code! To create a test, just invoke the Generate Code action, and choose Unit Test or hit
Ctrl+U,C. ReSharper lets you choose the test class name and will even create a new project with your preferred testing framework (if it’s not already in place). Once the test is created, you can navigate between your implementation and test code from the Navigate To action or by hitting
By default, the navigation takes the affixes
Spec(s) into account, but you can further tweak it under Tools | Unit Testing | Test Linker. You can also enable attribute-based and generic argument search that will link your tests, for instance via
New interline hints for local functions
Earlier in this EAP cycle, we introduced an inspection with a quick-fix that puts an explicit
return before local functions at the end of a method. Doing so helps readers understand that there’s no executable code after this point without having to scroll through all the helper methods.
The fix works great if you are willing to add such explicit exit points throughout your entire solution. But what if you are reading code that you don’t want to or aren’t allowed to change? For cases like this, ReSharper 2023.2 will display an inlay hint with
continue; statements before local functions to help you understand the code without changing it.
Improved support for
#pragma warning directives
Pragma directives allow you to easily disable or restore compiler warnings by their IDs. However, while such IDs are a great way to communicate with the compiler, they might be hard for human developers to understand. Without encyclopedic knowledge, it may not be clear what an ID like CS0168 or CS0618 refers to or what requires attention.
Starting with version 2023.2, ReSharper will display descriptive warnings as inlay hints after such pragma directives, unless there’s already a comment following one.
The EAP 7 builds for ReSharper and ReSharper C++ 2023.2 come with the following C++ language support improvements:
- Import completion is now enabled by default in Visual Studio 2022.
- Invoking Go to declaration on a module name now allows you to switch between
- The bundled clang-format binary has been updated.
Official GitHub Action for ReSharper
There is now an official InspectCode GitHub Action for the free command line version of ReSharper.
During debugging, Dynamic Program Analysis in ReSharper 2023.2 will disable the inspections tracking excessive database command duration times while the process is paused. This will eliminate the false issues triggered by these inspections caused by the debugger pausing the program’s run.
And that’s it! For the full list of changes, please refer to our issue tracker.
At this stage in the EAP cycle, 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.
Subscribe to Blog updates
Thanks, we've got you!
Eager, Lazy and Explicit Loading with Entity Framework Core
Entity Framework Core (EF Core) supports a number of ways to load related data. There’s eager loading, lazy loading, and explicit loading. Each of these approaches have their own advantages and drawbacks. In this post, let’s have a quick look at each of these ways to load data for navigational prope…
First-class Upgrades for ASP.NET Core with JetBrains Annotations
How to use JetBrains Annotations to enable first-class support in your ASP.NET Core libraries. These techniques will transform your user experience into an enjoyable and productive experience for ReSharper and Rider users.
.NET Annotated Monthly | September 2023
Did you know? The original usage of the term “computer” referred to people (mostly women), not machines. It’s possible that one day the word “programmer” could morph into meaning “AI”, and no longer refers to a person. .NET news Visual Studio for Mac Retirement Announcement 🚮…
ReSharper 2023.3 Roadmap
The next Early Access Program (EAP) for ReSharper version 2023.3 is right around the corner, so it’s high time to let you know what we’ll be working on in the coming months. This roadmap is just a preliminary plan and may be adjusted depending on our priorities and resources as well as changes in…