Rider 2022.3 Early Access Program Is Now Open
Last week we shared our roadmap plans with you, and today we’re revealing the first EAP build for Rider 2022.3!
Before you download it, let’s take a look at what awaits you inside.
Startup performance improvements
Everyone likes to get news about performance improvements in their favorite tools, and today, that’s just what we have for you. We’ve made several changes to increase Rider’s startup speed and reduce the time it takes to open a solution:
- Rider can now load a solution file and build its project tree instantly without having to wait for the backend to initialize (RIDER-78148).
- We’ve enabled parallel loading for the projects in solutions (RIDER-78090, RIDER-71728, RIDER-78089).
- We’ve removed all loading states from the solution explorer to achieve a cleaner UI. From now on, all these loading progress bars will be rendered in the IDE Status bar.
This build brings a number of language injection improvements:
- We’ve added support for language injections using the
[StringSyntax](from .NET 7) and
[LanguageInjection](from JetBrains.Annotations) attributes, as well as support for the
// lang=<language_name>language injections instruction comment.
- Language injections are now possible in interpolated strings and string concatenations for any language, whereas before it was only available for SQL. Please note that syntax errors are suppressed when string interpolation or concatenation with arbitrary expressions are used. Language injections inside C# 11 raw strings are also supported.
- An indent guide separating the indentation from the actual value is now displayed on raw strings.
In addition to these improvements for language injections, we’ve also implemented suggestions encouraging you to use C# 11’s unsigned right shift (
>>>) operator (RSRP-489309) and to use pattern matching instead of
Working with NuGet is an essential part of any .NET project. In this EAP build, we’ve implemented the highly requested support for NuGet Central Package Management (also known as the Directory.Packages.props file) for all NuGet operations (RIDER-41805).
We’ve also improved the scrolling experience inside the Packages list in the NuGet tool window (RIDER-46958).
Hot Reload for Blazor
As you may already know from the roadmap, the team is working hard to support the .NET6 Hot Reload feature for Blazor. This build introduces Hot Reload for Blazor Server Apps. You can find more information about this new support in this issue, and you can check out this article to learn more about what Hot Reload in Rider can do for you. And keep an eye on these EAP posts for updates about Hot Reload for Blazor WebAssembly apps.
Unreal Engine support
Rider is a powerful companion for creating games on Unreal Engine. During this release cycle we plan to polish and enhance many existing features. Let’s see what you can already try out in this EAP build.
Rename with CoreRedirects
Rider already provides the option to add CoreRedirects when renaming Unreal classes or properties via the Rename refactoring. This now also works for:
- Renaming UFUNCTION()
- Renaming USTRUCT()
- Renaming UENUM
When you perform the Rename refactoring, Rider now suggests adding CoreRedirects in these cases:
If you agree, then the corresponding .ini file is updated automatically:
It is now much harder to break your game accidentally by renaming things!
Enhanced support for the .uproject project model
For Unreal Engine-based projects, Rider works with both .sln and .uproject projects. We are continuing to enhance the support for the native .uproject model to make it more accurate and comfortable to work with:
- Rider 2022.3 EAP respects additional source locations, specifically
AdditionalPluginDirectoriesspecified in .uproject.
- It also supports custom programs placed in the game location and generates all the programs’ project files correctly (RIDER-80061).
- Rider now supports modules with several .Build.cs files for platform-specific modules (RIDER-75387, RIDER-79769).
- Completion and inspections in .uplugin and .uproject files are now supported when using the .uproject project model.
The auto-import on completion feature can save you tons of time. But if adds an incorrect #include directive, the problem may be tricky to detect. That’s why we’ve worked hard to polish it and make sure it doesn’t suggest unwanted entities from system headers in auto-import (RSCPP-31618). By default, system headers are not suggested, but if you want them to be, you can enable them in Settings/Preferences | Languages & Frameworks | C++ | Unreal Engine:
Finally, the log presentation in the UnrealBuildTool tool window has been improved (RIDER-78257).
Rider’s IL Viewer tool window is now able to decompile code into different levels of C# language constructs. There are two C# levels available: high-level, with certain syntax constructs simplified using the latest language features, and low-level, for cases when you want to know how these syntax constructs are desugared.
We are continuing to implement small optimizations for Rider’s UI to make it more relevant and useful:
- We’ve cleaned up the Add menu so it only presents relevant items for the current solution or project.
- The Open in Terminal action is now in the Solution Explorer context menu.
- The File | New at the top menu has been renamed File | New Solution to better reflect the actual action it will execute.
- The .NET User Secrets action has been added for ASP.NET projects (RIDER-11406).
- Rider will now show Roslyn Analyzer ID and URL Reference in a Quick Documentation tooltip for inspections produced by Roslyn Analyzers (RIDER-52119).
For the full list of issues we’ve resolved, please refer to our issue tracker.
There are a few ways you can participate in the Rider 2022.3 Early Access Program:
- Download and install the EAP build from our website.
- Use the Toolbox App.
- Install this snap package from the SnapCraft store if you are using a compatible Linux distribution.
And that’s it for now! We can’t wait to hear your feedback. You can leave it in the comments below, in our issue tracker, or on social media.