ReSharper Ultimate 2020.1 introduces a new dataflow analysis tool for integer values in C# and offers better support for the nullable reference types feature and also for C++20’s new features. It improves XAML support and Unreal Engine support, introduces a couple of new features to Navigation, and enables the ability to make comments in the Localization Manager. The decompiler supports more C# 7.x and 8.0 features.
Free 30-day trial available
This version of ReSharper introduces a new type of C# code analysis to track
the usage of integer
values in your application. This new type of analysis tracks how the values of all
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:
true
or false
results.
switch
cases checking int
values.
1
, addition of
0
,
etc.
int
overflows.0
.To improve the precision of analysis, we’ve also added two new
JetBrains.Annotations attributes to use with type members and parameters of the
int
type: [NonNegativeValue]
and [ValueRange(from,
to)]
. These
attributes specify how the values of the particular int
members can vary in
runtime.
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 ReSharper 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:
async
overloads of methods when available instead of
sync
overloads.
nameof
expression instead of using the
typeof(SomeType).Name construction to get the name of the current type.
This release has tons of changes to the architecture of ReSharper that bring us closer and closer to our goal of running all the core ReSharper features out of the Visual Studio process. All these modifications took place under the hood, so you won’t notice any changes in the UI/UX in the ReSharper 2020.1 release build.
If you missed the news about our progress toward moving ReSharper out of process, this is a good opportunity to catch up and learn about where we are now.
This update brings several small but useful features to Navigation, and they benefit both those who primarily use the mouse and those who primarily use the keyboard to interact with ReSharper:
In v2020.1, we’ve made a lot of improvements and fixes to XAML support that cover WPF, Xamarin.Forms, UWP, and Avalonia XAMLs.
We are happy to provide much better support for data context inference and symbol resolution in bindings:
d:BindingContext
is usedPicker.ItemDisplay
in Xamarin.FormsRelativeSource
binding in Xamarin.FormsScrollViewer
controlItemsSource
is used as a nested elementTreeView.ItemContainerStyle
In UWP projects we have added support for:
CustomResource
binding Additional fixes include support for:
URN
) in a definition of a
custom
XML
namespaces schema
x:Static
directives for AvaloniaStarting with ReSharper 2020.1, you can export and import any of your Unit Test Sessions. This allows you to share them with your team, between your computers, or between branches when you change something in the code and want to run/cover the same set of unit tests for both branches.
Also, Unit Test Sessions that have already been created are preserved after upgrading to a new major ReSharper version, which is handy if you don’t want to lose opened and locked sessions.
You asked, and we delivered! There are new rows on the grid for Comments. You can now leave a comment (or edit an existing one) for any value that comes from resource files right inside the grid. You can also export and import these comments. If you don’t use comments, or if you don’t need them right now, you can hide them by clicking the “Show/Hide comments” icon.
Apart from that, we’ve implemented several performance fixes that make the grid faster to load and filter, eliminate some UI freezes, and make scrolling smoother.
It’s also worth mentioning that there are quite a few UX improvements:
Code formatting brings new settings for C# Code Styles that cover the trailing comma. They can be found under ReSharper | Options | Code Editing | C# | Code Style | Trailing comma, and they are also compatible with the StyleCop SA1413 inspection except in a very few corner cases.
The C++20 standard has almost been signed off on, and ReSharper C++ extends its support for the latest standard. Several new language features are now supported, including constrained type placeholders, abbreviated function templates, and using enum declarations. Additionally, ReSharper C++ offers a quick-fix to update a lambda declaration with the C++20 template syntax and a refactoring to introduce using enum declarations with ease.
With updates to its Unreal Engine support, ReSharper C++ 2020.1 improves the Rename refactoring and introduces support for SpatialOS GDK and USF files with virtual file paths. ReSharper C++ also adheres more closely to the Unreal Engine guidelines by suppressing the Use auto inspection and following naming conventions for console variables and log categories.
ReSharper C++ 2020.1 provides initial support for HLSL. Even at this early stage, this support includes a variety of features, from basic code highlighting to smart code completion and quick navigation.
Now, you can navigate through Call Tree using the Next Important Call action. Press Ctrl+Shift+Right and dotTrace will navigate you to a node that is most relevant for further analysis (for example, a node with high own execution time).
The feature is available in dotTrace Standalone (both Performance Viewer and Timeline Viewer), in Visual Studio, and JetBrains Rider.
This release brings better support for C# language features:
Free 30-day trial available