What's New in ReSharper
Nullable reference types support:
New inspections, quick-fixes, and context actions, for example redundant nullable warning suppressions.
Improved support for parameter names in the
Improved support for generics.
A new refactoring to change nullability.
A new action to find nullable warning suppressions in file/project/solution is available from a suppression expression.
Source generators support
Support for source generators in VB.NET
Source generated files are now supported in Solution-wide analysis.
Improved support for results from source generated files in Find Usages.
New inspections, quick-fixes, and context actions. For example, a suggestion to replace
Go to Declaration invoked in debug mode on a usage of an interface member can navigate to its actual implementation used in the current frame.
Go to Derived Symbols displays members in derived classes that hide the member you're navigating from.
InspectCode Command-Line Tool automatically restores NuGet packages and builds the solution before starting the analysis.
An option to turn off CPU-intensive code assistance features in Razor.
Naming style improvements: support of custom naming rules for records, extension methods, and catch variables.
Speedup of code analysis for members with lots of local functions and closures.
Built-in decompiler improvements:
Single-file apps support (executables published with the 'Produce single file' option, both self-contained and framework dependent) for .NET Core 3.0, .NET 5, and .NET 6 preview (bundle header version 1.0, 2.0 and 6.0).
Platform-specific executables (app host; 'Produce single file' false) can be added to the Assembly explorer. The corresponding managed assembly will be shown inside the app host node.
Async streams support (
await foreach) are supported by the decompiler.
New features in C++:
Inline Function refactoring.
New immutability inspections: Parameter can be made reference to
const, Parameter can be made pointer to
const, Variable can be made
New modernizing inspections: Structured binding can be used instead of
tie(..), Type trait can be simplified using a template alias or a variable template,
std::sizecan be used, Zero initialization can be used instead of
- Unreal Engine:
Support for Unreal Engine 5.
Code completion now suggests the list of available modules and plugins.
Inspections and quick-fixes for missing module and plugin dependencies.
ReSharper now inserts the
Supercall when you generate an overriding function.
10% faster indexing of the Unreal Engine code base.
Context actions to convert any string into a C++11 raw string literal and vice versa.
New settings to configure code generation for function definitions.
The bundled Clang-Tidy binary has been updated to Clang 12, adding new checks.
New inspections, quick-fixes, and context actions. For example, a suggestion to convert
Naming style improvements:
Sort user rules so more specific rules have higher priority.
Read and write user rules to/from EditorConfig
New refactoring to rename tuple components
Structural navigation, refactoring, inspections, and quick-fixes for ASP.NET Core route templates
Type conversion hints for tuple conversions.
'Navigate to Windows Explorer' action
New formatter settings for:
spaces before and within target-typed
wraps before the assignment operator,
outdents in label statements.
Unit testing improvements
Support for bUnit - a testing library for Blazor components.
Support for custom test frameworks that use Visual Studio test adapter extensibility.
MSTest support in Universal Windows Platform projects for Visual Studio 2019
Better control over spawned processes
Code inspections for
AutoFixturelibrary in NUnit.
Bodyin File Layout patterns allows distinguishing between block- and expression-bodied members.
Copy FQN also allows copying GitHub links.
New features in C++:
- C++ support:
Class types in non-type template parameters
C++20 class template argument deduction rules
noexceptas a part of the function type
New code completion items for coroutines are available both in basic code completion and as postfix completion templates:
- Unreal Engine:
Initial support for Unreal Engine 5
Support for the
Set of syntax style settings with accompanying inspections, quick-fixes, and context actions.
Code cleanup updates: new code cleanup tasks, the Cleanup selection context action.
New inspections: Template arguments can be deduced, Variable can be moved to inner scope, Redundant cast expression.
New quick-fixes for conversion errors.
Stop list and separate options page for aggregate initialization hints.
- C++ support:
C# 9 support:
Target typed conditional expressions
with-expressions and records
Attributes on local functions
Support for lambda discard parameters
Extended partial methods
Initial function pointer types support
Fuzzy search in Go to Text.
Inlay hints improvements: Push-to-Hint, type conversion hints, better heuristics and context menus for XAML hints, ability to change font size, reworked settings pages.
Ability to jump out of closing brackets and quotes with Tab.
Support of the Avalonia framework.
Unit-Testing: Run test using selected target framework directly from the editor.
Syntax-coloring in the identifier tooltips.
CleanupCode Command-Line Tool console tool can now be run on specified set of files or folders, without pointing to solution file.
Decompiler improvements: Static local functions, top-level statements, attributes on local functions, readonly instance members on structs.
IL Viewer: improvements in synchronization and context highlighting.
Assembly Explorer window: top-level entry point item (presentation, double-click/context menu navigation, properties).
TypeScript support: nullish coalescing and optional chaining
New features in C++:
- Unreal Engine:
The ranges library
Support for the standard mode of C++20 coroutines introduced in Visual Studio 16.8
New inspections: An algorithm operating on ranges can be used,
std::views::keys/valuescan be used, Algorithm accepting an iterator and a count can be used.
- Import Completion:
The completion list now includes suitable members of incomplete classes.
There is a new option to add an elaborated type specifier for the corresponding class.
Context action to invert a ternary expression
Go to Declaration can be used to jump between matching preprocessor directives, and on an
overridekeyword to navigate to the base function
Peek Definition view: Peek Implementations (Ctrl+Alt +middle button click or Control+Alt+Q) and Peek Base Symbols (Shift+Alt+Q) come to C++.
File Structure now uses the C++17 syntax for nested namespaces.
The bundled Clang-Tidy binary has been updated to Clang 11, adding new checks and compiler diagnostics.
Updates to Catch2 support
Inlay hints in XAML.
You can quickly locate usages of any symbol in the solution and referenced assemblies by pressing Alt+F7 (Find Usages of Symbols), Control+Alt+F7 (Go to Usages of Symbol), or Shift+Alt+F7 (Find Usages of Related Entities) in the result lists of Search Everywhere/Go to Type, Go to Symbol, and Go to File Member.
New features in the Peek Definition view: Peek Implementations (Ctrl+Alt +middle button click or Control+Alt+Q) Peek Base Symbols (Shift+Alt+Q) Peek Usages (Ctrl +middle button click).
ReSharper command line tools can be installed and used as .NET Core global tool.
Improved Blazor support
Unit testing improvements:
New unified test runner for .NET and .NETCore
Support for MSFakes for NUnit, XUnit and MSTest both for .NET and .NETCore tests (Windows only)
Support for TypeMock for NUnit, XUnit and MSTest v2
Ability to navigate from a test in the editor to tests sessions where it is added.
Decompiler: support of expression-bodied members, throw expressions, default parameters, and named arguments.
New features in C++:
- Unreal Engine:
Introduced support for the Unreal Engine project model allows ReSharper C++ to better understand different solution configurations, and plugin and module references.
Symbols from engine sources are now treated as library symbols and hidden by default from the search results.
Several updates to inspection severity, code generation actions, documentation template, and auto-import of include directives according to the Unreal Engine coding standard
Reminders to refresh the Visual Studio project in Unreal Editor if the project files are out of date
The bundled dictionary is supplemented with a list of common game acronyms and abbreviations.
Go to Declaration works on unresolved identifiers
Highlighting of usages of the element under the caret
Highlighting of spelling mistakes for preprocessor directives
File Structure: preprocessor directives are now hidden by default.
New inspections: Structured bindings could be used, Cannot use
gcnewon a native type, Cannot use
newon a managed type,
finalspecifier cannot be used for managed classes, Overriding function does not have a
virtualspecifier, You might need to regenerate the project files
A brief preview of Clang-tidy quick-fixes
Improved support for values of class types in evaluation of
Code completion: a new completion item can insert an auto-generated lambda argument when an
std::functionparameter is expected. If a class is not included in the current file, import completion will suggest a new option to add a forward declaration.
New settings: Indent aligned ?: operator, Insert // on Enter in multi-line // comments, Consider only quoted includes as potential main headers
New file templates: Source file and Header file
- Unreal Engine:
ReSharper/ReSharper C++ 2020.1
- Nullable reference types support:
Compilation warnings related to nullable reference types
New inspection and quick-fix to detect redundant type parameter constraints with respect to Nullable Reference Types
A number of different quick-fixes for nullability warnings
Change signature refactoring is updated to support changing nullability
Quick documentation is updated to show nullability annotations
New inspection and quick-fix to detect and use async overloads of methods instead of sync when available
Configurable code style for trailing commas in declarations with multiple items and similar constructs (object, array, and collection initializers, as well as enums and switch expressions)
Go to Declaration works with the middle mouse button.
You can locate files in the Solution Explorer by pressing Ctrl+Enter on the selected result in the Go To File list.
Export and import of unit test sessions.
Localization manager improvements: ability to edit, export and import comments as well as a number of UX and performance fixes
Decompiler: improved tuple component names support.
Decompiler: nullable reference types (in declarations, not in method bodies).
Decompiler: default interface members.
Decompiler: field-targeted attributes for auto-implemented properties and field-like events.
IL View: support for custom attributes in interface implementations and generic parameter constraints (for example, the compiler can apply
TupleElementNamesAttributeto these entities).
New features for ReSharper C++ 2020.1:
Constrained type placeholders and abbreviated function templates
Using enum declarations and the Introduce Using Enum refactoring
Support for concepts in the naming and redefinition inspections
New inspections: Unused lambda capture, Functional-style cast used instead of a C++ cast,
reinterpret_castused instead of a
static_castwhen casting to void, Use explicit template parameters in lambda
New settings "Case-sensitive sort" and "Group headers by directory" for sorting of includes
Code completion improvements: completion of attribute names; label names are shown when completing in a
gotostatement; postfix completion for
std::forward; completing a call to a base function from an overriding function will insert a forwarding call, which passes all function parameters to the base function; completion in macro definitions; Complete statement
Typing assist surrounds selected code with parentheses/brackets/quotes after typing the corresponding key
[[maybe_unused]]" quick fix
Context action to replace
Filters in Go to... actions for concepts and namespaces
Options in Generate to add a
[[nodiscard]]attribute to generated getters and constructors
Type name hints are enabled by default in dependent code
"Generate mock functions" supports the
MOCK_METHODmacro from GTest 1.10
Parameter name hints in dependent function calls
Better error messages about unsatisfied constraints
Unit-testing setting to use files instead of named pipes (useful when named pipes are blocked by antivirus software)
Change Signature accepts non-resolving types
Major improvements for the Rearrange code actions
Clang-tidy is updated to LLVM 10, with new checks and diagnostics
Go to Declaration works on symbol names inside comments
Improvements in File Structure: icons now have indicators for class member accessibility and virtual/static/pure specifiers, new inheritance icons for class members (shown when a function overrides/implements/hides a base function)
Convert to Scoped Enum refactoring
Dedicated shortcut Control+OemQuestion for the Document action
Unreal Engine 4 support improvements:
Renaming a UE4 header will also rename the corresponding
Renaming a UE4 type will also rename the corresponding header and source files (with
SpatialOS framework support
Tweaked default settings for UE4 solution to better match their coding guidelines (avoid suggesting
Better support for UE4 naming conventions: naming rules for console variables and for log categories
Go to... actions show namespaces that contain UE4 enums
ReSharper/ReSharper C++ 2019.3
Improved C# 8 support including:
notnullconstraint, the target-typed
switchexpressions, early support for
default interfacemethods, a new hint "Local function can be static", and a new quick-fix "Add missing arms".
Type name hints for lambda’s parameters,
vars including pattern matching and tuples deconstruction, range variables inside LINQ statements, and at the end of a line in a method call chain. Hints for missing returns in functions and missing breaks in switch statements
Xamarin support fixes:
Generate type patterns in switch expressions
Parameter Information supports tuples.
Find dependent code now works for NuGet references and can be run for the whole solution. Also there are new filters for dependent code in find results.
Decompilation of tuples, deconstruction, discards.
More colors for different kinds of identifiers in Syntax highlighting
More detailed configuration for code style of using 'var' vs explicit type.
ReSharper command line tools can run on Linux and macOS.
New features for ReSharper C++ 2019.3:
C++20: Initial support for C++20 concepts, ADL and Function Templates that are not Visible, initializing aggregates from a parenthesized list of values
Clang-tidy integration improvements:
The bundled clang-tidy binary is updated to version 9 with a number of new checks. Additionally, it should no longer prevent modifications to source files.
Clang warnings can now be disabled from the inspection menu.
A new setting to use a specific clang-tidy configuration file (instead of a setting which specified the configuration as a string)
Formatter improvements: export of formatting options to a .clang-format file, options for spaces before
refin abstract declarations.
Thanks to some improvements in the code highlighting engine, re-highlighting now happens faster (after a function’s body is changed, only the body itself will be reanalyzed).
New quick-fixes that help adding a variable to the lambda capture list.
Unreal Engine 4 support improvements:
UE smart pointers (
TUniquePtr) are supported similarly to
unique_ptr(for example, they are supported by the Parameter Info, code analysis, and postfix completion).
newpostfix template for
UCLASSexpands to a proper factory function call.
UENUMCLASSlive templates are available.
No more Visual Studio hang after executing the "Refresh Visual Studio Project" action in the Unreal Engine 4 editor.
Several live templates were renamed to match the corresponding keywords (for example,
A couple of updates in Go to file member: The dialog is now displayed instantly instead of waiting for a file to be fully analyzed, if a file contains both the declaration and the definition of a function, the function is shown only once in the dialog.
It’s now possible to navigate to the aggregate class from the opening brace of a brace-enclosed initializer list.
New setting to find the clang-tidy executable to use in
Inlay hints improvements: Type name hints for auto variables, structured bindings, function and lambda return types. Type name hints are disabled by default in dependent code.
ReSharper/ReSharper C++ 2019.2
Improved C# 8 support including: the latest changes in indexes and ranges such as indexable and rangeable types, unmanaged generic structs.
Go to File Member now also searches for textual matches in the current document.
Ability to filter out occurrences in comments in the search results of Go to Text.
Solution model is read directly from project/solution files.
Tooltips with keyword description in IL Viewer
Win32 resources subtree in Assembly Explorer window
New features for ReSharper C++ 2019.2:
Improved editor hints. There are two new types of hints: hints after preprocessor directives and hints for function arguments passed by a non-const reference. Hints in aggregate initialization expressions now show the names of initialized base classes.
More C++ 20 features are supported: conditional
char8_t, pack expansion in lambda init-capture, default constructible and assignable stateless lambdas, C++20 rules for aggregates,
constinitspecifiers, C++20 improvements to structured binding declarations.
The summary tooltip in code completion is now syntax-colored and shows documentation for the selected item.
Improved Unreal Engine 4 support:
ReSharper/ReSharper C++ 2019.1
Visual Studio 2019 support.
C# 8 support including: Ranges and index from end expressions, Null-coalescing assignment, Switch expressions, Tuple expression in switch statement, Static local functions, Initial support of using var declarations, Nullable reference types (parsing only), Async streams, Async disposables
Go to Text now searches in all text files in the solution.
Optimize references now works with SDK projects
Extract Method refactoring supports renaming of introduced parameters in the UI.
Improvements in Inlay hints: Hints for attribute usages, special Hints for StringFormatMethod calls (disabled by default), more flexible configuration, auto-hide on column selection, a keyboard shortcut Control+Alt+Shift+5 to show/hide the hints.
New features for code annotations and nullability analysis: Typing assist inserts
ItemCanBeNullattributes when the caret is within an argument of a generic collection type,
Task<T>, Typing assist supports C# 8 nullable reference types allowing to insert or remove the nullable mark
?, Code annotations hints on method declarations.
Faster navigation and search: "Instant" types search Faster "Search everywhere" and "Go to type"
Formatting and code cleanup improvements: formatting inspections for indenting around child statements are turned on by default, detecting formatting settings now works in background, export settings to EditorConfig, an option to turn off placing
Windows.*namespaces first when rearranging namespace imports, which is now compatible with Visual Studio and StyleCop
Typing assist for unindent on Backspace, which returns the caret either by a multiple of the current indent size, or directly to the expected indent position in the code structure.
New features for ReSharper C++ 2019.2:
Performance improvements: Faster indexing, Smaller memory footprint, Less memory traffic during indexing and code analysis, Faster solution open from cache in large solutions.
New language features: C++20 familiar template syntax for generic lambdas, C++17 hexadecimal floating point literals, Alternative operator representations, Basic support for C++20 contracts, and three-way comparison operator.
New entity kinds are available when configuring naming rules.
Unreal Engine 4 support:
Initial indexing with default settings is 6x faster than 2018.3, 2x less managed memory used after indexing, 3x less live objects,
Awareness of RPC functions: navigation between them, generating implementation and typing completion,
UE4 options page with settings that allow turning off indexing of engine code/third-party code/plugins,
Initial support of naming convention defined by Unreal Engine's coding standard,
Clang-Tidy Integration is disabled by default for Unreal Engine 4 solutions.
New features for unit testing: Support for the doctest unit testing framework, Support for Catch 2.7 (
TEMPLATE_PRODUCT_TEST_CASEtest declarations) Support for
GTEST_SKIP()in Google Test, Environment variable names wrapped with
%get expanded in user-provided environment string
Improvements in formatting settings: support K&R style declarations in C, separate formatting options for spaces around references and pointers, macro calls get formatted similar to function calls.
Highlighting of identifiers in external files.
Improvements in navigation and search: Chained 'Go to' searches are several times faster now, Include base members option in Go to file member is supported, "Go to file member", base and derived class searches now work during indexing
More features for documentation comments: Parameter names get renamed in XML documentation comments, Typing assist automatically inserts
///on a new line
Clang-Tidy Integration improved: Separate clang-tidy options page ( ), Setting to harness a user-provided clang-tidy binary
ReSharper/ReSharper C++ 2018.3
VB.NET 15.3 and 15.5 features support: named tuple inference, leading hex/binary/octal separator, non-trailing named arguments
Introduce Parameter refactoring now also works for local functions.
External annotations can be stored under VCS, in the ExternalAnnotations folder next to a solution or a project file.
Ability to open options pages with Go to Action Control+Shift+A
Configuration options for the usage-aware behavior of Go to Declaration.
Integrated decompiler improvements: local functions decompilation; Pattern matching decompilation: const pattern, type pattern, type patterns in the case clauses (predicates and discards are supported)
Localization assistance support in ASP.NET Core apps.
Multi-threading mode for the InspectCode Command-Line Tool command-line tool.
TypeScript 3.0 syntax support: unknown type (parsing only), optional elements in tuple types, rest elements in tuple types, rest parameters with tuple types, spread expressions with tuple types (without resolve), generic rest parameters
New features for ReSharper C++ 2018.3:
Automatic detection of formatting settings for C++ code
Predefined naming style schemes (STL, Google, LLVM, CamelCase, Microsoft)
Performance improvements: improved memory traffic during indexing, multithreaded cache load
Navigation improvements: Go to Declaration works more precisely on non-dependent
decltypespecifiers and lambdas, and you can even use it during the initial indexing
Refactorings improvements: Change Signature refactoring gets options to make a function
noexceptand change the ref-qualifiers.
Code analysis improvements: error diagnostics in the templated code is improved significantly, providing extra information on failed
enable_ifconditions, ill-formed expressions inside
decltype, and absent inner types.
New context actions to generate a function that will convert an enum to a string, convert a regular return type in a function declaration into a trailing return type and vice versa, and also insert template arguments deduced using class template argument deduction.
For Unreal Engine projects: postponed background indexing of the engine itself to improve the initial indexing performance and better handling of the reflection macros
Unit testing support for Catch 2.5
New supported type traits in C++11
std::has_virtual_destructorand in C++/CLI (
C++20 nested inline namespaces support
Improved C++/CLI suppor
ReSharper/ReSharper C++ 2018.2
C# 7.3 support, including declaration expressions in initializers and queries, tuple equality, ref assignments, array initializers in stackalloc, pattern-based 'fixed' statement, indexing movable fixed buffers;
Integrated spell-checking engine.
Redesigned UX for most of refactorings.
An option to enable BeforeBuild/AfterBuild targets and pre-build/post-build events for projects skipped by ReSharper Build.
You can specify ignored file masks on the page of ReSharper options (Alt+R, O).
Formatter improvements: option to not indent inside namespaces, options for
enumarrangements, "Max elements on single line" option for method signatures, method invocations and initializers
Separate built-in type reference styles for member access and for locals, members, and parameters.
New features for ReSharper C++ 2018.2:
Improved C++17 including fold expressions, auto non-type template parameters, pack expansions in using declarations, using declarations with multiple declarators, guaranteed copy elision, class template argument deduction, aggregates with base classes,
__has_includein preprocessor conditionals
Initial support of the upcoming C++20 including Coroutines, Designated initialization, Feature test macros, Default member initializers for bit-fields
Size and alignment calculations take into account bit-field sizes,
Improved syntax highlighting — new color settings for static class fields and member functions.
Expected failures specification is supported in Boost.Test unit tests.
ReSharper/ReSharper C++ 2018.1
Full support of C#7.2, including features missing in previous releases: non-trailing named-arguments, private protected access modifier, leading underscores in numeric literals,
ref readonlyreturns and locals,
A new way to detect unused non-public members without the Solution-wide analysis — the Show unused non-private type members when solution-wide analysis is off option on the page of ReSharper options (Alt+R, O)
Value tracking supports some new C# features: ref-returning methods, pattern matching, and out variables.
A new filter for unit tests
/uin search everywhere Control+N (the most powerful ReSharper's search action, previously referred to as Go to Everything).
Initial StyleCop support.
Typing assistance improvements: If you press Enter in the middle of a line comment, ReSharper will automatically add two slashes
//in front of the text on the new line to avoid getting a non-compilable text.
Support for NUnit 3.10.1
- New features for ReSharper C++ 2018.1 (an extended version is also available in a dedicated blog post):
The #include_next preprocessor directive is now supported, for better compatibility with compilers that implement this GNU extension.
Typing assistance in C++ files automatically removes trailing whitespaces on Enter in order to keep your code clean of redundant whitespaces.
If you select an expression and open the Quick Documentation window for it, the window show various information about the selected expression, such as its type, value, and value category.
ReSharper/ReSharper C++ 2017.3
Performance Guide (preferences that affect performance) — an options page that helps you check and quickly fix ReSharper and Visual Studio
- New formatter features:
Ability to reformat code with different line break styles (wrap or chop long lines, compactly reformat selection, etc.)
An option to align similar code in columns.
Options to insert blank line before or after complex statements; outdent binary operators, dots and commas; choose nested ternary expression style; and much more.
Generate Deconstructor actions and navigation features for C# 7 tuples.
Improved Extract Method refactoring can now extract local functions, return value tuple in the extracted method, work with expression-bodied members, and more.
New typing assists: multi-line block comments on Enter, chained method calls in C#.
Improved to-do items can now link to external URLs.
Ability to hide entries from the call tracking results.
- New features for ReSharper C++ 2017.3 (an extended version is also available in a dedicated blog post):
New quick-fixes and context actions.
Code analysis: deduction of return type for auto functions and lambdas, improved support for explicit template instantiations, support for native C++ event handling MS extension.
C++17 features support: structured binding declarations, inline variables,
Catch2 support (the new version of the Catch unit testing framework)
ReSharper/ReSharper C++ 2017.2
Support for .NET Core 2.0 projects in Visual Studio 2017 15.3.
Commands that navigate by name can handle incorrect word order inside a CamelCased identifiers as well as misspellings. They also support exact match queries inside quotation marks.
C# 7.1 support: inferred value tuple component names, default literals, async Main.
Go to File Nearby — a new navigation command.
A new option to make properties mutable when implementing an interface with get-only properties.
A new option to make parameters optional when generating type constructors.
New options page (generating null-checking routines for exceptions and assertions.) that lets you customize
XML is supported in language injections.
Quick Documentation Control+Q as well as completion for scoped NPM packages are now available in project configuration files (project.json, package.json, and bower.json).
Improvements of the built-in decompiler: ability to retrieve assembly's original source code, which is referenced in the Portable PDB using Source Link; if any of the navigation and search commands results in multiple matches inside a single method, ReSharper now displays all of them in the search results.
Interactive tutorials () to help you get started with ReSharper’s functionality or get up to speed with features in new releases.
Finalized support for TypeScript 2.3 features: async iterators, optional generics, overload resolution for stateless JSX components, contextual
thisfor object literals, and the
Full support for TypeScript 2.4 features: enums with string values (or mixed string/number values), generic inference from contextual type returns, and generic contextual signatures.
Introduce/Inline Type Alias refactorings.
Support for angular input/output aliases and attribute directives, for Angular2 components added via NPM, and improved support of Angular 4 syntax.
- New features for ReSharper C++ 2017.2 (an extended version is also available in a dedicated blog post):
ReSharper/ReSharper C++ 2017.1
Full support of Visual Studio 2017.
A new option that helps improve performance on large solutions by completely ignoring selected projects, configurable on the Alt+R, O).page of ReSharper options (
Find Results window improvements: grouping by kind of usage (for both C# and C++), improved filters, possibility to search by exact match using quotes, error highlighting in found usages.
Contextual configuration of formatting rules is now available in C#.
Auto-formatting pasted code with ReSharper formatting preferences.
Other formatter improvements: Auto-detecting indents when reformatting code, support for comma-first style, options for the line breaks in a single
casestatement in C#, option to add line feed at the end of the HTML, CSS, or XML files.
Code styles for bodies of simple type members.
Unit testing assistance in .csproj -based projects in Visual Studio 2017 (requires Visual Studio 2017 update of March 28th or later).
Full support of TypeScript 2.1 and 2.2, including mapped and indexed types, object rest and spread properties, configuration inheritance, untyped imports, combined types normalization, partially annotated signatures, and control flow analysis for implicit any and implicit any arrays.
Generate Properties for TypeScript classes.
- New features for ReSharper C++ 2017.1 (an extended version is also available in a dedicated blog post):
About 30% decrease in managed memory usage when a solution is loaded from cache.
The set of C++ postfix templates is extended with
Formatter improvements: Indenting for the preprocessor directives, space after parentheses in cast expressions, break line in simple case statement, indenting for namespace members.
New code cleanup tasks for removing code redundancies.
New options page for configuring C++ tests ().
Initial support for Open Folder and CMake projects.
ReSharper/ReSharper C++ 2016.3
Support of Visual Studio 2017 RC, including the new .csproj based .NET Core projects.
A new Transform Parameters refactoring, which combines and replaces two other refactorings 'Transform Out Parameters' and 'Extract Class from Parameters'.
No more separate setting pages for Context actions in specific languages as all of them can be now enabled or disabled on the page of ReSharper options.
Redesigned inspections severity options page ().
The Usages of Symbol action lets you switch from the popup to the Find Results window before the usage search is over.
The Find Results window works asynchronously, meaning that you can work with the results tree while a search is in progress.
New formats of content files (
.styl) supported in Go to Text.
New quick-fixes and context actions: e.g. a new quick-fix to introduce fields and auto-properties for all unused parameters; a new context action on fields of type
Lazy<T>will introduce a property to encapsulate
A new typing assist for interpolated strings: type
$and ReSharper will automatically complete the
$""and insert the text caret between the quotes.
Join Lines command that quickly appends the next line after the current one.
ReSharper build improvements: the results of a build are now displayed in their own Build Results window, plain text logging to the Output window and/or to a file, an option to automatically run build after the solution is loaded, and proprietary NuGet package restorer that works with all supported Visual Studio versions.
External stack traces can open automatically in the Stack Trace Explorer window.
Dynamic completion of package names in project configuration files (project.json, package.json, and bower.json).
Unit testing assistance is now available for for NUnit and xUnit.net unit tests in ASP.NET Core and .NET Core projects.
Significant performance improvement xUnit.net tests.
Support of UWP RelativePanel control.
Formatter improvements: Indenting of nested
lockstatements without braces is now disabled by default, with options to restore the old behavior; new option for indenting type parameter constraints; fixes for bugs introduced in 2016.2 by the new indenting engine.
Reworked coloring of to-do items in the editor.
- New features for ReSharper C++ 2016.3:
C++ code analysis in the InspectCode Command-Line Tool.
Syntax highlighted tooltips for C++ code elements. The tooltips display method and field signatures, as well as formatted Doxygen and C#-style XML comments.
Support for nested namespace definitions introduced in C++17.
New options for C++ formatter: 'Spaces within parentheses in cast expressions' and 'Place enumerators on new line'.
Properties get read from Linux Makefile projects
Memory usage optimizations.
ReSharper/ReSharper C++ 2016.2
Support of ASP.NET Core 1.0 and .NET Core 1.0 projects.
Warnings in Solution-wide analysis.
New C# typing assistant features: dot/semicolon inside parentheses and auto-correction of prefix in verbatim string interpolation
Rearrange code improvements. For example, it is now available in interpolated string inserts, and in expressions with 3 and more operands; greedy brace now works for opening brace, braces of types and namespace declarations.
Reworked surround templates: each non-file template can now be used for generating code, for surrounding code, or for both, which lets you reuse your custom surround templates as live templates and vice versa, reducing their total number.
Move Type to Another File refactoring can be now applied to nested types.
HTML analysis inside string literals in .cs, .js, and .ts files, which is enabled with the context action or with a comment
/*language=html*/before the string literal.
Ability to enable regular expression assistance in string literals with a comment
/*language=regexp*/before the string literal.
Support for the
<inheritdoc/>tag in XML documentation comments.
C# formatter improvements: new options for indenting of parentheses and code inside them; for controlling spaces before and after
--operators as well as before and inside parenthesis of
IL Viewer improvements: when you set the caret on a code symbol or instruction, all usages of this item are highlighted; loops in your code can be distinguished by corresponding indents and comments.
VB.NET: support for interpolated strings
CSS: support of custom properties and CSS variables.
Generative completion in TypeScript (
ctorp, overrides, lambdas).
Full support of TypeScript 2.0 features, including
thisfor functions, control-flow aware type guards, path mappings, optional class members, the
- New features for ReSharper C++ 2016.2 (an extended version is also available in a dedicated blog post):
C++14 language features: variable templates and
Warnings about usages of classes and functions marked with the
Support of the
__declspec(noreturn)attribute in control flow analysis.
New code style preferences for include directives in generated code.
Inline Variable refactoring now works in C++.
Important optimization of code analysis. For example, this optimization makes indexing (first opening) of the Unreal engine project several times faster.
Automatic completion in C++ now also suggests symbols that are not included in the current file.
New code inspections and quick-fixes: 'Missing include guards' in your header files with the 'Add
#pragma oncedirective' fix; 'Non-explicit conversion operator'; inspection and a fix to add a missing
defaultcase to a
The Document context action that allows you to quickly add documentation comments to types and symbols.
When your caret is on one of a function’s exits (
throw, etc.) ReSharper will automatically highlight all other function exits including exits from loops and
A code style preference for using
NULLin default pointer initializers.
New formatter options: single-line functions and lambdas, Blank lines around single line function definitions, Break line before member initializer list, Space between closing angle brackets in template arguments (for conformance with pre-C++11 compilers)
__RESHARPER__ macro that allows you to detect when ReSharper is parsing your source code and, if necessary, disable ReSharper's preprocessor for some code.
ReSharper/ReSharper C++ 2016.1
Invert Boolean refactoring that helps you quickly modify boolean members so that they get the opposite meaning.
Smart Paste that helps you automatically escape illegal characters in text that you copy/paste around your code.
Ability to change preference of displaying parameter information tooltip above or below the caret.
Pasting items from clipboard history can be now done without opening a modal dialog.
Support for new language features in VB 14
Initial support for JSON files and schemas
Initial support for Node.js.
New formatting settings that allow you to define line breaks and wrapping in a more granular way.
- New TypeScript specific features:
Full support for TypeScript 1.7 features.
Full support for TypeScript 1.8 including string literal types.
Resolving types behind
Rename refactoring can now rename files corresponding to TypeScript types.
- New features for ReSharper C++ 2016.1:
Support for To-do items in C++ files.
The Rename refactoring can now rename C++ files.
The list of supported C++ language features is extended with generalized lambda captures (C++14), exception specifications, user defined literals and delegating constructors.
Code generation improvements: The Generate stream operations action can now generate stubs for Boost Serialization functions:
serialize(). Also, formatting options are now taken into account when generating code.
All ReSharper C++ actions are now banned from changing library headers.
ReSharper/ReSharper C++ 10.0
Ability to build your solution incrementally using multiple parallel processes with ReSharper Build.
Ability to change code style preferences right from the editor.
Code styles for optional parentheses to help you get rid of redundant parentheses and/or automatically add parentheses to clarify operation precedence.
Usage-aware behavior of the Go to Declaration command (Control+B or Ctrl -click).
Updated Stack Trace Explorer window shows types as clickable hyperlinks, allows wrapping long lines, and parses more types of data, including WinDbg GCRoot dumps and Visual Studio’s Call Stack tool window contents.
Support for Google Protocol Buffers (Protobuf).
Full support for TypeScript 1.6, including intersection types, union types, and TSX files.
Support for NUnit 3.0 Beta 4.
New features for ReSharper C++ 10.0
C++ support improvements including
char32_tbuiltin types, compile-time expressions of floating point types.
Generate Google Mock methods action.
Reduced time to get ready to work (for already cached solutions).
ReSharper 9.2/ReSharper C++ 1.1
Full support of Visual Studio 2015.
Run configurations that help you run and debug code in your solution with different startup properties.
Support for Typescript 1.5 (including decorators, ES6-compatible modules, ES6-style imports/exports, local types)
Support for some of TypeScript 1.6 features (for example, generators, type predicates, generic type aliases, abstract classes, async function-like entities, await expressions)
Go to Type of Symbol in TypeScript
Import Symbol Completion Control+Alt+Space for TypeScript.
File Templates for TypeScript.
New features for ReSharper C++ 1.1
Improvements in Visual Studio 2015 CTP support
.NET framework 4.6 support
TypeScript 1.4 support
ECMAScript 6 support
Source templates that can be created right in the code of your project as extension methods.
NuGet Browser that halps you search for types or namespaces in the NuGet package gallery and easily download and install the package that you choose.
Configurable style for usages of built-in type.
Installer improvements: silent and per-machine installation modes.
Ability to match dependency properties and arrange items in groups as well as other improvements in file and type layout.
New commands for copying symbol information n (XML-doc ID and fully-qualified name) to the clipboard
Visual Studio 2015 CTP support
C# 6.0 support, including conditional access expression, expression-bodied members, auto-properties with initializer expression, etc.
Regular expressions assistance including syntax and error highlighting, completion features, quick-fixes and more.
Major improvements in TypeScript support, including, but not limited to:
Configurable TypeScript language level up to 1.3.
New code inspections including inspections for about 300 compiler errors and inspections dependent on project properties + about 100 new quick-fixes. For more information, see Code Inspection and Quick-Fixes in TypeScript.
Import missing namespace popup.
Code generation actions (Generate missing/overriding members, Generate constructor).
Performance improvements and new features in code completion. You can now apply filters to completion suggestions, complete call chains based on existing patterns in your solution, and more.
Code style assistance improvements: a number of new code style preferences that have common configurations for both code inspection and code cleanup. For more information, see Code style and cleanup.
Ability to suppress some or all code inspections in specific type or method using the
The Fix in scope feature is supported for more quick-fixes. Now the global fixes work for naming rules, code redundancies, and more.
Similarly to 'Fix in scope', some context actions can also be applied in a wider scope.
The Navigate to Action feature that allows you to find and execute any ReSharper command with a couple of keystrokes.
The Navigate To Exposing APIs action that allows finding all methods returning a specific type.
Recently viewed methods and performance improvements in Search Everywhere.
A new visual editor greatly simplifies understanding and editing of file and type layout patterns.
Search through preferences in the Options dialog.
Ability to toggle support of languages and feature sets on thepage of ReSharper options.
Support for Visual Studio 2013 Preview
Extended code completion capabilities:
More navigation options:
Easy plugin discovery and installation via Extension Manager
A call diagram (Push/Pull parameter tool) for adding new argument to method calls in the Change Signature refactoring.
A new possibility to explore dependencies between projects via Architecture View
Improvements in XAML support
The Extract Class refactoring is now available for VB.NET
Support for named arguments in the Change Signature refactoring
Support for Visual Studio 2012:
Custom contract annotation attribute
More options to control code completion behavior
Unit Testing improvements:
Support for NUnit 2.6 and MSTest 11
Support for Jasmine and PhantomJS
Transform Out Parameters refactoring
Path mapping for Web projects
Improved Type Hierarchy
New interface of the Templates Explorer window and improved templates sharing
Improvements for web developers:
- Extended navigation and search
Improvements and bug fixes in XAML support
- An extensive feature pack for web development:
Master page support in navigation and generation actions.
Generating Content tags based on
ContentPlaceHoldertags in master pages.
File Structure and Go to File Member in ASP.NET markup files.
Live, surround, and file templates for ASP.NET pages, including master pages
- ASP.NET MVC support pack including:
Special syntax highlighting, including highlighting for unknown items.
Dedicated code completion.
Navigation to and from actions or controllers.
Creating new actions and controllers from usage in pages.
- Project maintenance and teamwork feature pack:
Support for Visual Studio 2010, including C# 4 and VB10.
- Code analysis enhancements:
- Other enhancements:
Automatic completion for enum members.
Completion for unresolved symbols in local scope.
Native NUnit support.
Major performance and memory usage enhancements.
Support for VB9.
Extended naming style settings.
Solution-wide code inspections to discover unused non-private members.
Go to Implementation to navigate from usage of a base type or member to any of its end implementations.
Native MSTest support.
Support for Microsoft Visual Studio 2008 SP1.
Improved performance and usability.
Comprehensive support for Visual Studio 2008 and C# 3.0, including LINQ, implicitly typed locals and arrays, extension methods, automatic properties, lambda expressions, object & collection initializers, anonymous types, expression trees, and partial methods.
Errors, warnings and suggestions are complemented by hints, which are by far the most non-intrusive way to recommend coding improvements.
.NET Framework classes were annotated with custom attributes to make ReSharper analyze your code even better than before - for instance, to let it know where format strings should be passed or where null values can or cannot be assigned. You can also use these custom attributes to annotate your own source code, as well as library symbols that you don't have source code for.
Code Cleanup- a powerful successor to Reformat Code. By running Code Cleanup, you can instantly apply a dozen of actions, including arranging 'this' qualifiers, removing code redundancies, migrating to auto-properties, optimizing using directives, and many more.
All ReSharper refactorings now support C# 3.0. New members of the refactoring family are available, including Convert Method to Indexer refactoring, Convert Indexer to Method refactoring, Convert Static to Extension Method refactoring, Convert Extension Method to Plain Static refactoring, Convert Property to Auto-Property refactoring, Convert Anonymous to Named Type refactoring, and Inline Method refactoring. All refactorings that are not C# 3.0-specific are now available for Visual Basic 8.
Complete Statement- a new feature that inserts necessary syntax elements (braces, semicolons etc.) and gets you to the position to start the next statement.
CamelHumps in Code Completion. All three completion features - Basic Completion, Type-Matching Completion, and Import Symbol Completion- let you complete any symbol by entering only its uppercase characters.
Templates Explorer and Template Editor- a redesigned set of tools to view, manage, and edit the three types of templates that ReSharper provides. From now on, you can manage and classify your templates in a special-purpose window, and edit them right in a Visual Studio code pane.
Recent Edits- a drop-down list similar to existing Go To features that shows files and symbols that you recently modified.
To-do items are now discoverable in identifiers and strings.
Vast improvements in Quick Documentation, including hyperlinks to related items, back/forward navigation, "read more" links and navigating to source.
Smoother interaction with Visual Studio ecosystem. The quality of interaction with frameworks, add-ins, version control clients and other members of the Visual Studio ecosystem (.NET Compact Framework, BizTalk, and Silverlight included) is brought to a new level.
ASP.NET Speedup. ReSharper 4.0 significantly speeds up analysis and, consequently, editing of ASP.NET pages, to enable more web developers benefit from the great toolset that ReSharper provides.
Comprehensive support for VB.NET: versatile code assistance, code completion, many important code refactorings, code generation, live templates, and more.
Full-fledged C# code analysis with code suggestions that go beyond just bringing your attention to errors and propose optimized code usage.
Cross-language functionality: for mixed C# and VB.NET projects, ReSharper helps you keep all parts of code working together smoothly and navigate around your code with ease.
Three editions of ReSharper (C#, VB.NET and Full) for different target audiences.
To-do list: create to-do items by certain patterns and navigate between them.
Type members preview: you can now preview existing members of a selected type, either all or polymorphic only.
Auto member reordering: define the order of members in the Options dialog.
Go To Symbol for robust solution-wide search by name for any file member.
Disabling warnings at a specific position: configure the "Disable warning" context action and apply it where necessary.
Unit Test Explorer window: unparalleled flexibility in running and debugging unit tests.
XML and XAML support.