ReSharper Ultimate 2019.3 introduces a brand new Localization Manager and Type Name Hints, and offers even better support for C# 8, C++ 20, and Unreal Engine. Navigation, code styles, and unit testing are enhanced, and Command Line Tools for ReSharper and dotTrace now work on Linux and macOS.
Free 30-day trial available
The brand new Localization Manager helps you work more efficiently with loads of .resx files in your solution. It shows everything you have in your .resx files in one single grid, so you can observe the current state of the application or website localization and quickly find any missing resource values in any culture.
You can:
Check out the Localization Manager under ReSharper | Windows or in the context menu in the Solution Explorer.
To learn more, please see Localization Becomes Easier with the Localization Manager.
The new ReSharper release handles C# 8 even better. It now includes:
notnull
constraints.
nullable
annotations and warnings in a file,
project, or all projects in a solution.EnumeratorCancellation
attribute to CancellationToken
parameters of async
iterators.Additionally, the code inspection “Type or type member is never used” has been split into two separate options, one for types (“Type is never used”) and another for type members (“Type member is never used”).
The Generate action knows more about C# 8 and helps you learn, too, with:
Nullability
being taken into account when generating equality/relational
members/comparers.Also, there is a new option to use System.HashCode
to implement GetHashCode
when generating equality members or equality comparers for C# and VB.NET, which will help
make your code cleaner.
In this release, we’ve delivered on one more long-awaited request. C# naming settings now support reading from/exporting to EditorConfig.
In addition to this huge change, there are several smaller changes that give you more control over the style of your code:
var
instead of explicit types only when the type of
initializer expression is evident/apparent, ReSharper can now detect more “evident”
cases. There is also a “compatibility” mode to match the Roslyn behavior.&&
or ||
takes precedence, this option will help you to
clarify it with parenthesis.People often asked us whether it was possible to run ReSharper Command Line Tools on a CI hosted on Linux. For a long time, our answer was, “No, it can’t be done.” However, we worked hard to remove all Windows-specific parts so that we could move everything to Mono runtime for Linux and macOS. Don’t worry, it still uses the .NET Framework on Windows.
Today we are happy to announce that ReSharper Command Line Tools have come to Linux and macOS! Nothing is stopping you from using the powerful ReSharper code analysis on non-Windows operating systems.
We hope you like the Parameter Name and Code Annotations hints that we introduced in ReSharper 2019.1. In this release, we’ve gone further and are now ready to give you Type Name Hints. They are available for:
Most of us have times when we want to know where a particular reference is used in our code. For a long time, it was possible to run the “Find dependent code” action on a reference to find all the places where types or type members from that reference appeared. However, there have always been limitations.
Starting with the 2019.3 release, we’ve eliminated a couple of them:
Unit Testing tool windows are already in great shape and cover most of what we would expect from them. Still, we thought we could add more ways for you to customize your view of the list of unit tests, so we did.
Identifier highlighting has been completely reworked. We’ve added more color settings
for extra precision with code highlighting (available in Tools | Options | Fonts and
Colors
). New color settings include:
C++20 is feature-complete and will be officially signed off next year to provide C++ developers with a range of long-awaited goodies. ReSharper C++ 2019.3 already supports many of these features, augmenting them with additional analysis and insights.
First, ReSharper C++ is now aware that aggregates can be initialized from a parenthesized list of values, and that an extra ADL needs to be performed in some cases with function templates.
Not only are concepts supported in ReSharper C++’s parser, but Rename refactoring and Find Usages are also available. Even better, code analysis can show you more details about errors related to Concepts. For example, if the overload resolution fails because a Concept’s requirement is not satisfied, you’ll see all the details in a tooltip. By the way, in ReSharper 2019.3 we’ve also added color to the tooltip that shows the details on the overloading resolution failures.
We’ve started a series of C++20 and ReSharper C++ blog posts, which you can use to learn about the new language features and their adoption in ReSharper C++.
When ReSharper C++ detects you are developing an Unreal Engine project, it adjusts its behavior to be more UE4-specific.
The “new” postfix template for UCLASSes
expands to a proper factory function call
(which will register the created object in the garbage collector).
Live templates with the corresponding names are now available to help
you quickly generate USTRUCT/UCLASS/UENUM/UENUMCLASS
.
Unreal Engine’s Smart Pointers (TSharedPtr, TSharedRef, TWeakPtr, TUniquePtr
)
are now handled by ReSharper C++ similarly to
std::shared_ptr/std::unique_ptr
. This means features like Parameter Info,
code analysis, and postfix code completion work for Smart Pointers.
Finally, there are some performance improvements for UE4 projects. For example, we fixed a hang after "Refresh Visual Studio Project" in the UE4 editor.
The command-line profiler finally comes to macOS and Linux.
dotTrace.sh
has the same functionality as its
Windows counterpart and is distributed
as a .tar.gz archive and as a NuGet package.
dotCover 2019.3 gets several improvements:
Free 30-day trial available