JetBrains Resharper Ultimate 2020.1
JetBrains Resharper Ultimate 2020.1
ReSharper extends Visual Studio with over 2200 on-the-fly code inspections for C#, VB.NET, ASP.NET, jаvascript, TypeScript and other technologies. For most inspections, ReSharper provides quick-fixes (light bulbs) to improve the code.
Find and remove unused code? Migrate your code to C# 7? Convert loops to LINQ at will? Find and prevent possible exceptions? Use a common naming standard? All that and a lot more code improvements are made possible with ReSharper's code analysis.
Refactorings
60+ refactorings and 450+ context actions help safely organize code and move it around the solution, distribute responsibility, decouple, decrease complexity, or simply use alternative language syntax.
Navigation and search
ReSharper helps instantly get to any code in a solution, no matter how large the solution is. It can also navigate you from any symbol to its related code such as implementations of a given interface, extension methods of a class, or usages of a field.
Code formatting and cleanup
Configure and apply code style based on your personal preferences or your team standard. Code style and formatting settings for C#, VB.NET, ASP.NET, jаvascript, TypeScript and other languages can be applied in any scope, from a selection to a solution.
Code generation
ReSharper can create a lot of code for you: from new files and classes to conditional blocks and GUIDs; from methods and properties required by an interface being implemented to equality checks and formatting members.
Analyze code quality
On-the-fly code quality analysis is available in C#, VB.NET, XAML, ASP.NET, ASP.NET MVC, jаvascript, TypeScript, CSS, HTML, and XML. You'll know right away if your code needs to be improved.
Eliminate errors and code smells
Not only does ReSharper warn you when there's a problem in your code but it provides hundreds of quick-fixes to solve problems automatically. In almost every case, you can select the best quick-fix from a variety of options.
Safely change the code base
Automated solution-wide code refactorings help you safely change your code base. Whether you need to revitalize legacy code or put your project structure in order, you can rely on ReSharper.
Instantly traverse the entire solution
You can instantly navigate and search through the whole solution. Jump to any file, type, or type member, or navigate from a specific symbol to its usages, base and derived symbols, or implementations.
Enjoy code editing helpers
Multiple code editing helpers including extended IntelliSense, hundreds of instant code transformations, auto-importing namespaces, rearranging code, and displaying documentation.
Comply with coding standards
Code style and formatting functionality with fine-tuned, language-specific settings will help you get rid of unused code and create a common coding standard for your team.
Code quality analysis
On-the-fly code quality analysis is available in C#, VB.NET, XAML, ASP.NET, jаvascript, TypeScript, CSS, HTML, and XML. ReSharper will let you know if your code can be improved and suggest automatic quick-fixes.
Code editing helpers
Multiple code editing helpers are available, such as extended IntelliSense, hundreds of instant code transformations, auto-importing namespaces, rearranging code and displaying documentation.
Code generation
You don't have to write properties, overloads, implementations, and comparers by hand: use code generation actions to handle boilerplate code faster.
Eliminate errors and code smells
Instant fixes help eliminate errors and code smells. Not only does ReSharper warn you when there are problems in your code but it provides quick-fixes to solve them automatically.
Safely change your code base
Apply solution-wide refactorings or smaller code transformations to safely change your code base. Whether you need to revitalize legacy code or put your project structure in order, you can lean on ReSharper.
Compliance to coding standards
Use code formatting and cleanup to get rid of unused code and ensure compliance to coding standards.
Instantly traverse your entire solution
Navigation features help you instantly traverse your entire solution. You can jump to any file, type, or member in your code base in no time, or navigate from a specific symbol to its usages, base and derived symbols, or implementations.
More features
Other ReSharper features include a powerful unit test runner, various kinds of code templates, debugging assistance, a project dependency viewer, internationalization assistance, as well as language-specific features for ASP.NET/ASP.NET MVC, XAML and other technologies.
What’s new in ReSharper Ultimate 2020.1
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.
Dataflow analysis of integer values in C#
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 аbout:
Relational/equality operators always giving true or false results.
Heuristically unreachable switch cases checking int values.
Meaningless arithmetic operations, such as multiplication by 1, addition of 0, etc.
Possible int overflows.
Possible division by 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.
C# support
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:
To detect redundant type parameter constraints with respect to nullable reference types.
To detect and use async overloads of methods when available instead of sync overloads.
To use the nameof expression instead of using the typeof(SomeType).Name construction to get the name of the current type.
Performance news
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.
Improved XAML support
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:
When d:BindingContext is used
In Picker.ItemDisplay in Xamarin.Forms
RelativeSource binding in Xamarin.Forms
Template binding for the ScrollViewer control
When ItemsSource is used as a nested element
In TreeView.ItemContainerStyle
In UWP projects we have added support for:
Conditional XAML markup
CustomResource binding
Additional fixes include support for:
Using the Uniform Resource Name (URN) in a definition of a custom XML namespaces schema
Putting a slash symbol in a resource name
x:Static directives for Avalonia
Updates to Unit Testing
Starting 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.
Comments in Localization Manager
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:
Improved support for right-to-left languages
More precise navigation to specific rows from the text editor and refactoring dialogs
Enhanced code completion and validation in the dialogs
Code formatting
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.
Even better C++20 support ULTIMATE
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.
More features for game development ULTIMATE
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.
Next Important Call in dotTrace ULTIMATE
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.
Support for Nullable Reference Types in dotPeek
This release brings better support for C# language features:
Support for nullable reference types (NRT) has come to the decompiler. Please note that this only works in declarations, not in the bodies of methods.
We’ve added support for decompiling the default members of interfaces and Auto-Implemented Property Field-Targeted attributes.
We’ve improved support for decompiling tuple component names.