Rider 2020.1 now runs the backend on .NET Core runtime by default on macOS and Linux and delivers Xamarin Hot Reload and Dynamic Program Analysis. It introduces an easy way to configure the severity of the editor, and it adds dataflow analysis for integer values as well as faster code completion. The Debug window has been reworked, and the Extract Class refactoring and Coverage Filters are now available.
Say hello to Rider .NET Core edition! The backend finally runs on .NET Core runtime by default on macOS and Linux, instead of the Mono runtime. You will instantly notice:
By the way, the current .NET Core version is the latest and greatest 3.1, which has a lot of performance improvements compared to the 3.0 version.
Please note that there is no Windows support for now, only macOS and Linux. We are planning to add Windows support later this year.
Do you want to learn more about the transition from Mono to .NET Core and see the performance charts? Check out this blog post!
If you experience any problems with the Rider backend running on .NET Core and want to move back to the Mono runtime, select Help | Switch IDE runtime to Mono. And if anything goes wrong for you, don’t forget to tell us.
Initial support for Xamarin Hot Reload is here! Now Rider automatically applies changes made in Xamarin Forms XAML to the application under debugging on a device or a simulator, without rebuilding and redeploying the whole application.
Please note there is a limitation: If a PC/laptop with Rider and an iOS device are not in the same WiFi network, a Hot Reload will not work, even if the iOS device is connected to the PC/laptop through USB.
Apart from that, Xamarin support gets one important fix: the “Invalid target architecture 'arm64e'” error no longer appears when running Xamarin.iOS projects on an iPhone XS Max device.
Check the blog post for more updates.
We are happy to introduce Dynamic Program Analysis. Every time you run your project in Rider, DPA starts collecting memory allocation data. Once you close the application, DPA will show you a list of detected problems: closures, and allocations to large and small object heaps. The great thing about it is that you do not need to start any “profiling sessions” and get snapshots. Just work as usual, and all the data will be collected in the background, with almost zero overhead. Testing DPA on a variety of real solutions has demonstrated a slowdown of only 0 to 2 percent.
Please note: DPA is available only on Windows, and you do not need a separate license to activate it.
Learn more: Auto-Detect Memory Issues in your App with Dynamic Program Analysis
This version of Rider introduces a new type of code analysis to track the usage of
integer values in your application. This new type of analysis tracks how the values of
int local variables vary, and it verifies the correctness of all common
operations on such variables to detect useless or possibly erroneous pieces of code.
Namely, it warns you about:
1, addition of
To improve the precision of analysis, we’ve also added two new JetBrains.Annotations
attributes to use with type members and parameters of the
[ValueRange(from, to)]. These attributes specify how the values of the
int members can vary in runtime.
ScriptableObjectsand values of serialized fields.
System.Diagnostics.Debugin its code completion for Unity projects.
We continue to add more and more support for C# 8 language features. We’ve refactored a lot under the hood in C# language support to prepare code analysis and other features, such as refactorings and ReSharper Build, to support nullable reference types (NRT). In Rider 2020.1, code analysis reports compilation warnings related to nullable reference types and provides quick-fixes for most of them.
There are also several new inspections and quick-fixes:
asyncoverloads of methods when available instead of
nameofexpression instead of using the typeof(SomeType).Name construction to get the name of the current type.
Over the past year, we have received a few reports of the code completion popup taking too long to appear. We’ve done our homework, and now the code completion popup displays much faster after you begin typing, especially in large solutions.
Another very handy feature that has landed in this release is that members marked as Obsolete can be hidden in code completion if you don’t want to see them there.
Last but not least, completing an item from the code completion popup now respects your code style settings.
We have completely reworked the UI for the Debug tool window to make it as clean and uncluttered as possible. When there’s only one debug session running, the tabs layout is simplified, as all tabs are now on one single level. Tab captions take up less space, so there is more room for debugger content. And when there are multiple sessions, one more tab layer is added to separate the sessions.
At the same time, we’ve combined the Threads and Frames views. If you don’t need the Threads view at the moment, you can hide it by clicking the “Hide threads view” icon.
We have also updated the debugger engine to make your debugging experience even better:
This new feature lets you easily change the editor’s highlighting levels. With just one click from a non-modal popup, you can turn on or off Code Vision, Parameter Hints, Unity Performance Hints, Errors, Warnings, Suggestions, Context actions, and many more elements. Look for the Pencils icon in the bottom right-hand corner of the code editor tab.
We’ve tweaked the toolbars in the Unit Test Session and Unit Test Explorer windows.
In addition to that, we’ve added three big features:
Learn more: Test Runner Updates in Rider 2020.1
In Rider 2019.3, we added an experimental TFS client which provided a dramatic speed improvement for the "Checking for changes" action. In the current release cycle, we’ve continued to put a lot of effort into the client.
Finally, our TFS client hits its first release and brings a lot of improvements. Let’s mention the two most significant ones. First, enabling the Version Control Integration now works for TFS workspaces locally created with Visual Studio. This means you no longer need to re-create a local workspace from scratch in Rider. Second, we have greatly boosted the performance of the Delete and Rollback operations.
To start using the TFS client, go to Settings | Version Control | TFVC and enable it.
Rider, like all JetBrains IDEs, now uses JetBrains Mono as the default font in all themes. We hope you will enjoy it!
One more ReSharper feature that has been missing in Rider until now is finally here: namespaces can be auto-imported when code is pasted from a file in the solution.
If you edit NuGet-related files manually, we think you’ll be happy to get assistance from Rider, as it now offers initial support for editing NuGet.Config, packages.config, and *.nuspec files, including code completion, syntax validation, and the quick documentation popup.
These smaller enhancements are also worth mentioning:
One more highly requested and long-awaited refactoring available in ReSharper has finally arrived in Rider – Extract Class.
Wondering why you need this? Imagine you have a class doing work that should be really done by two different classes. Using this refactoring is the safest and most effective way to decompose that complex class into two single-responsibility classes. Extract Class will help you choose methods and fields to move from the old class to the new class. It will also warn of any broken dependencies and accessibility issues, and suggest conflict resolution options.
The Solution Explorer view introduces two new useful folders that provide you with more information about your project: Implicit references as a subfolder for the Assemblies folder, and MSBuild import targets.
In addition to that, there are several small updates:
To give you more control of the unit test coverage results that you get in Rider, we’ve added Coverage Filters. To specify them, go to Preferences/Settings | Build, Execution, Deployment | dotCover | Filtering.
If you do performance profiling on Linux or macOS, we have good news for you: .NET Core applications can finally be profiled in Tracing mode on these operating systems. Also, you can now attach the profiler to .NET Core applications on Linux.
We’ve added several new features to Rider’s decompiler and IL Viewer:
To improve F# support in Rider, we’ve made tons of improvements and fixes that should help you in your daily routine:
this.Property), and indexer expressions (
For more updates and fixes, please see the GitHub repo.