ReSharper Ultimate Starts Its Early Access Program for 2020.2!
We’re excited to introduce the first EAP build of ReSharper Ultimate 2020.2!
Here’s what we have in store for you.
ReSharper 2020.2 EAP1
- Nullability code analysis is learning about more cases – it can now trace the incorrect nullability through deconstruction and the foreach cycle, and it provides a quick-fix:
- Context actions for converting foreach to LINQ and LINQ to code are available on IAsyncEnumerable<T> as well – just install the System.Linq.Async NuGet package for your project.
- Support for default implementations in interfaces has gotten better: our indicators show that a method is implemented and overriden, and our refactorings and navigation are now smarter about this language feature.
- Good news for UWP developers: support for compiled bindings with x:Bind is finally on its way! ReSharper resolves the x:Bind code correctly and offers inspections and quick-fixes – for example, for missing property setters or overload collisions. More improvements are coming, and we welcome your feedback in our public issue tracker.
- In 2020.1, Rider migrated from Mono to .NET Core on macOS and Linux. One of the many advantages of this move is that you can now install ReSharper Command Line Tools as a .NET Core global tool. Run the following command to install them:
dotnet tool install -g JetBrains.ReSharper.GlobalTools --version 2020.2.0-*
And run the tool with
jb tool_name [options], for example:
jb inspectcode yourSolution.sln -o=
Because Command Line Tools now run on .NET Core, they no longer come with Mono bundled. Please note that the tools for macOS and Linux now require .NET Core 3.1.
- Navigating to usages of types from external assemblies in your code is now much easier. ReSharper can take you straight from Go to Type search results to Find Usages. Search for the type you’re interested in, highlight it in the list with keyboard or mouseover, and call Find Usages or Go to Usage by using their respective shortcuts. Here’s an example:
- Other actions, such as calling quick documentation, are also now available from Go to Symbol and Go to File Member using shortcuts.
- Inlay hints are now available in XAML code too. We provide hints for markup property names and
DataContext, as well as for margins and paddings, which can be handy if you don’t want to memorize their orders.
- For .editorconfig users, we’ve taught ReSharper to follow dotnet_diagnostic rules. Specify the severity of inspections in your .editorconfig file, i.e. dotnet_diagnostic.CS1058.severity = hint, and ReSharper will display those inspections accordingly.
- Our Blazor support is getting better all the time – we’ve eliminated a lot of known erroneous red code and improved performance.
- And we’ve implemented a variety of performance updates for code cleanup.
Interested in fixed issues more than new features? Visit this page to see all the closed requests.
ReSharper C++ 2020.2 EAP1
The main highlights of the ReSharper C++ 2020.2 EAP1 build are:
- For Unreal Engine, ReSharper C++ introduces experimental support for the Unreal Engine project model, new inspections, and improvements for Find Usages and code generation. Also, it is now in better alignment with the UE code style:
- C++/CLI support has new inspections for
finaland searches for inheritors and usages in C# code too.
- For code style and formatting, ReSharper C++ provides settings for multiline ternary operators and sorting of include directives.
- Other improvements include a preview for small quick-fixes, better evaluation of constexpr functions, new file templates, and more.
Please refer to this separate blog post for an overview of all the C++ changes we’ve made in the first EAP.
dotPeek 2020.2 EAP1
As usual, dotPeek continues to improve its support for the most recent versions of C#. In dataPeek 2020.2 EAP1, the decompiler engine now supports:
- Expression-bodied members.
- Throw expressions.
- Default parameters and named arguments.
Additionally, NuGet packages are finally sorted alphabetically in the Assembly Explorer.
And last but not least, the “Generate PDB” engine now infers and stores the tuple component names for local variables.
dotMemory 2020.2 EAP1
The dotMemory Command-Line Profiler has come to macOS and Linux to help you analyze memory usage in your .NET Core applications. We are going to publish a related blog post soon that will provide more detailed information about it. For now, you can run
./dotMemory.sh help for a list of available commands and arguments.
As for standalone dotMemory, you can now open all pinned objects as a separate object set.
We’d love to hear your feedback!
Note: In 2020.2, we change the way third-party tools should be integrated with JetBrains .NET tools: dotTrace, dotMemory, and dotCover. If you are a developer of such a tool, please update the integration according to the following articles: dotTrace, dotMemory, dotCover.