ReSharper 2019.1

ReSharper 2019.1
Adds full support for Visual Studio 2019 and early C# 8.0 language support.


Feature Release

May 02, 2019 - 14:45
ReSharper 2019.1
Initial C# 8 support

Initial C# 8 support

  • Most new language features are already supported, including:
    • Ranges and index from end expressions
    • Null-coalescing assignment
    • Switch expressions
    • Tuple expression in a switch statement
    • Static local functions
    • Async streams
    • Nullable reference types
    • Recursive patterns
    • Using declarations
  • Typing assists for nullability annotations have been enhanced to support the features from the latest language version.

Support for Microsoft Visual Studio 2019 RTM

  • ReSharper 2019.1 supports the recent final release build of Microsoft Visual Studio 2019. Apart from supporting C# 8.0, there are the following notable changes:
    • This build supports the “async packages auto-load” API in Visual Studio 2019.
    • MSTest framework in Visual Studio 2019 is supported.

Code formatting update

  • There’s a new typing assist to unindent the code when you press Backspace.
  • Now you can export all code formatting and code styles setting to a .editorconfig file and share them with your colleagues who don’t use JetBrains products.
  • Detecting formatting settings works in the background.
  • Formatting inspections for indenting around child statements are ON by default.
  • Sorting using directives is compatible with Visual Studio and StyleCop behavior, and it supports sorting all using directives alphabetically, including System.
  • A new built-in Code Cleanup profile is available.

More files for Go to Text

  • The engine behind Go to Text takes into account literally all text files in a solution.
  • Previously, Go to Text considered only files that had already been indexed by ReSharper. ReSharper indexes only files which contain code or can help you write code, since running the full indexing for other files is expensive in most cases. So, all files with “unknown” file extensions were completely out of scope, meaning you could not search in non-code files.
  • Now, while the results from indexed files are being displayed, the engine starts searching in non-indexed text files in the background. This is very helpful if you store some data in files with different extensions, such as .*proj, .yml, and .csv.

Optimize References for SDK projects

  • ReSharper now also checks for unused package references in SDK projects. Use “Optimize References” in the context menu for a project to analyze and optimize these references. When the project does not contain any code that uses a given reference, it will show as unused. Easily uninstall unused packages and keep your project’s dependency tree clean!

Improved Extract Method refactoring

  • The Extract Method refactoring is now even more developer-friendly. If the auto-generated name for the introduced parameter is not exactly what you want, simply edit the name right in the refactoring dialog, along with the introduced method name, return type, and visibility.

Hints in the code editor

  • Parameter name hints now work in more places in your code. First, you may find them in an attribute’s usages to display the names for the attribute’s parameters. Second, special hints appear for methods marked by a StringFormatMethod attribute, e.g. Console.WriteLine(), and display the index of the parameter whose value will be inserted at that position. Please note that “StringFormatMethod” hints are disabled by default and can be enabled in Options.
  • In addition, introduced new code annotation hints for parameters on a method declaration. They show you code annotations for a parameter calculated by ReSharper code analysis if one is specified in:
    • An overridden base method located in a parent class, or
    • An implemented method declared in parent interfaces.