ReSharper Ultimate 2019.3

Integriert einen neuen Lokalisierungsmanager und verbessert die Unterstützung für C# 8 und C++ 20.
Dezember 11, 2019
Neue Version

Funktionen

ReSharper

  • Localization Manager - The brand new Localization Manager helps you work more efficiently with .resx files in your solution. It shows everything you have in your .resx files in a 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.
  • Even Better C# 8 support - The new ReSharper release handles C# 8 even better. It now includes:
    • A better understanding of Nullable Reference types including support for notnull constraints.
    • Target-typed switch expressions.
    • Early support for default interface methods.
    • A new hint, “Local function can be static”, with an accompanying quick-fix.
    • A new quick-fix to enable nullable annotations and warnings in a file, project, or all projects in a solution.
    • A new quick-fix to add the EnumeratorCancellation attribute to CancellationToken parameters of async iterators.
  • Code Generation - The Generate action knows more about C# 8 and helps you learn, too, with:
    • A new quick-fix Add missing arms to check enum values exhaustively.
    • A new quick-fix and context action to generate type patterns in switch expressions.
    • Nullability being taken into account when generating equality/relational members/comparers.
  • Code Style - C# naming settings now support reading from/exporting to EditorConfig. In addition, there are several smaller changes that give you more control over the style of your code:
    • For those who prefer to use 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.
    • There is a new code style option, which is compatible with StyleCop and Roslyn, to add parentheses that clarify precedence only for a group of operators nested with others from the same group. For example, if you can’t remember whether && or || takes precedence, this option will help you to clarify it with parenthesis.
    • Comment Code now adds an indent to a comment by default. There’s a new setting to “Place comments at first column when commenting out code” if you want to turn it off.
    • The options pages to set up indentations now display the appropriate notification when the Autodetect indent size and value setting is ON.
    • There is also a notification tooltip explaining the Configure formatting and Autodetect formatting features on the C# formatter options pages.
  • Cross-platform ReSharper Command Line Tools - ReSharper Command Line Tools have come to Linux and macOS.
  • Type Name Hints - They are available for:
    • A lambda’s parameters.
    • All var occurrences, including pattern matching and tuples deconstruction.
    • Range variables inside LINQ statements.
    • At the end of a line in a method call chain.
  • Navigation and Find Usages
    • Find dependent code now works for NuGet references and can be run for a whole solution instead of just a project!
    • Consuming APIs extends “Navigate to” actions and might be helpful if you want to list all methods that receive objects of a specific type in their parameters.
    • The Find results window for Find dependent code has new filters.
    • You can now navigate to the external sources of NuGet packages that have a source symbols package.
  • Unit Testing update
    • Use the new advanced Group by functionality in the Unit Test Explorer and Unit Test Session tool windows to create a custom grouping. With the added Duration element, you can now group unit tests based on the time it takes them to execute.
    • You can filter unit tests by the target framework in the Unit Test Session tool window, in the event that you have more than one (which is quite common nowadays) and don’t want to see some of them.
  • Identifier highlighting update-  Identifier highlighting has been completely reworked. This release adds more color settings for extra precision with code highlighting. New color settings include:
    • A general section for colors of entities in all languages.
    • Dedicated settings for C# colors.
    • New color settings for constructs in different languages.
  • Other features
    • New NUnit inspections cover combinatorial unit tests and individual parameters of parameterized unit tests.
    • The Parameter Info popup is available for tuples.
    • Xamarin support has a couple of important fixes, such as x:DataType and Class attribute support.
    • Typing assists for deleting new lines and for backspacing before a new line now leave a space either to separate tokens or when this is required by the formatting rules

ReSharper C++

  • C++20 support - C++20 is feature-complete and will be officially signed off next year. ReSharper C++ 2019.3 already supports many 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, ReSharper 2019.3 also adds color to the tooltip that shows the details on the overloading resolution failures.
  • Code analysis & quick-fixes - If you find a Clang warning too distracting, you can now disable it from the inspection menu. And for all code checks, you can now suppress the corresponding inspection for all such issues in the file - simply use Disable in file with comment, or even suppress all inspections in the file with Disable all inspections in file with comment. As you type a lambda body, a new quick-fix will assist you with adding variables to the lambda capture list. No need to do it manually - just place the caret on a variable in the lambda body and press Alt+Enter. ReSharper C++ will suggest a list of options for how to update the capture list.
  • Clang-Tidy - This version upgrades the built-in Clang-Tidy binary to Clang 9, to give you many new code checks and accompanying fixes. Importantly, the bundled binary no longer prevents modifications to the source files. Clang-Tidy also starts more quickly as it doesn’t wait for all other ReSharper C++ analyses to finish. Clang-Tidy settings were improved in a couple of areas:
    • You now have 3 options to select from for the Clang-Tidy executable to use in ReSharper C++. In addition to the bundled binary and a custom binary, which you can provide in settings, you can now select the one from %PATH% (ReSharper C++ will search in folders listed in the %PATH% environment variable and let you know if it finds anything).
    • You can now point ReSharper C++ to a specific Clang-Tidy configuration file instead of the YAML/JSON format string used before.
  • Type hints - ReSharper C++ gives you hints about your code to help improve its readability. New code hints added in 2019.3 help you identify types that might not be obvious when you look at modern C++ code:
    • For auto variables
    • In structured bindings
    • For function and lambda return types
  • Live templates - In ReSharper C++ 2019.3, several live templates were renamed to match the corresponding language keyword. For example, to generate a class, type class (was cls before); for structures, use struct instead of str; and use similar logic for unions, enums and namespaces.
  • Navigation improvements - Go to file member was improved in two ways:
    • The dialog is shown instantly without waiting for the file to be parsed.
    • If the declaration and the definition of the function are both located in the same file, the dialog now lists them only once.
    • In initializer lists, code hints help you better understand what you are actually initializing. Now, you can also navigate to the aggregate class from the opening brace of a brace-enclosed initializer list.
  • Formatter - In ReSharper C++ 2019.3, it’s now possible to export your formatting settings to a .clang-format file. It can now check the order of the #includes directives in your code. Simply provide the ordering settings, and a corresponding inspection and a quick-fix will help you notice if they’re out of order and reorder them in no time.
  • Unreal Engine 4 support - 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.
  • Project Properties - For custom compiler toolchain or custom build tool cases, ReSharper C++ 2019.3 adds ReSharper Project Properties. They are stored in the ReSharper settings and allow you to specify: include directories, preprocessor definitions, and     the C++ language standard. ReSharper C++ 2019.3 can now check the order of the #includes directives in your code. Simply provide the ordering settings, and a corresponding inspection and a quick-fix will help you notice if they’re out of order and reorder them in no time.
  • Performance improvements
    • Thanks to some improvements in the code highlighting engine, re-highlighting now happens faster. After a function’s body is changed, only the body will be reanalyzed.
    • Find Usages was sped up by adding a heuristic based on the graph of includes. This helps by cutting out the files without any usages.

dotTrace

  • Support for .NET Core on macOS and Linux - dotTrace 2019.3 supports sampling profiling of .NET Core projects on Linux and macOS. Note that only projects targeting .NET Core 3.1 are fully supported. Because of some .NET Core limitations, profiling of projects targeting .NET Core 3.0 or earlier may have some issues: in rare cases, the profiled application may hang or crash. To profile .NET Core applications on Linux and macOS, you should use JetBrains Rider or dotTrace command-line tools.
  • Command-line profiler on macOS and Linux - 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.
  • Call tree flame graph - Find slowest methods in just a glance with the call tree flame graph. Note that the graph is available only in the Timeline Viewer.

dotCover

  • Support for Unity on Windows, macOS, and Linux - dotCover 2019.3 provides support for Unity 2018.3 and later on all operating systems. To perform coverage analysis of Unity tests, you must use JetBrains Rider.
  • Various improvements
    • Support for Microsoft Fakes.
    • Ability to group coverage results by nested namespaces in Rider, Visual Studio, and in reports generated by the dotCover console tool.
Localization Manager

ReSharper Ultimate

Steigern Sie Ihre .NET.-Produktivität!

Sie haben eine Frage?

Live-Chat mit unseren JetBrains-Lizenzierungs-Spezialisten.