ReSharper 2021.1 vs. Visual Studio 2019

This document lists some of the features that are provided by ReSharper 2021.1 but are missing or not as fully implemented in bare Visual Studio 2019 16.9.

Microsoft Visual Studio 2019 16.9
ReSharper 2021.1

Code analysis

On-the-fly design-time code analysis for C#, VB.NET, XAML On-the-fly design-time code analysis for all supported languages (including ASP.NET, XAML, JavaScript, TypeScript, HTML, and more)
600+ code analysis rules (code inspections) 1400+ code analysis rules (code inspections)
Design-time error highlighting: compiler errors for C#, VB.NET, JavaScript, TypeScript, and C++ Design-time error highlighting: most compiler errors, many possible runtime errors (such as detection of possible null reference exceptions) for all supported languages
340+ kinds of code issues that can be fixed automatically 1800+ kinds of code issues that can be fixed automatically
210+ quick actions to resolve code issues in C# and VB.NET 1300 quick-fixes to resolve code issues in C#, VB.NET, ASP.NET, XAML, XML, JavaScript, TypeScript and other supported languages
Full solution analysis for C# and VB.NET Solution-wide error/warning monitor for all supported languages
Call hierarchy Call tracking
Integrated ESLint support Integrated JSLint, ESLint, and TSLint support
Reporting all errors and code quality issues in a file Reporting all errors and code quality issues in any scope, up to the entire solution
Code annotations for nullability analysis Code annotations help analyze solution with greater accuracy (nullability, contracts, etc.)
Suggest usings for types in installed NuGet packages A quick-fix that finds unresolved symbols and namespaces on nuget.org
Custom code inspections and fixes with structural search and replace patterns
Analysis of code stored inside string literals, tags and attributes
Value tracking to analyze value origins and destinations

Refactoring

13 solution-wide refactorings 55 solution-wide refactorings
100+ local refactorings (automated local code transformations) 440+ context actions (automated local code transformations)
Project-level cleanup refactorings that allow to automatically adjust namespaces, move types into matching files, and remove unused references.
Structural replace for same or similar code

Code generation

Create from usage Create from usage
Generate code from code snippets (templates) Generate code from configurable live, surround, source, and postfix templates
Generate files from templates Generate files and file sets from configurable templates
Generate type members Generate type members
Generate null checks for parameters Generate configurable null checks for parameters
Visual editor for code snippets (templates)

Build tool

MSBuild ReSharper Build: out-of-process incremental build tool that optimizes MSBuild and applies heuristics to build only projects that need updating, comes with a built-in NuGet package restorer

Project-level tools

Dependency graph Enterprise Project Dependency Diagram, Assembly Dependency Diagram, and Type Dependency Diagram that do not require Visual Studio Enterprise Edition and display without compiling anything
Assembly explorer to open and navigate inside compiled assemblies
NuGet browser to explore packages, types, and namespaces in the NuGet gallery
Run configurations for multiple startup projects, static methods, and external executables

Coding assistance

Code completion Code completion is context-driven, can suggest types and extension methods from the entire solution, import namespaces, generate code, and more
Syntax highlighting Syntax highlighting (different configurable colors for more identifier kinds)
Auto-import namespaces Auto-import namespaces with NuGet search for types and namespace
Move line or selection up/down Move line, selection, statement, parameter, member, etc. up/down/left/right
Expand/Contract selection Extend/Shrink selection
Regular expressions assistance Regular expressions assistance with the Validate Regular Expression dialog
Pasting items from clipboard history Pasting items from clipboard history
Inlay hints for parameter names and type names Inlay hints for parameter names, type names, and type conversions; push-to-hint mode
Completion of statements with ';' Complete statement
Structural navigation with Tab/Shift+Tab
Structural remove
Localization assistance
Auto-correction of escape sequences in pasted string literals
Integrated spell checking

Navigation & search

Go To Search everywhere
Go to declaration Go to declaration that also helps navigate between usages
Find references Find usages of the current and related symbols, including text occurrences
Highlight references Highlight references
Go to symbol Go to symbol
Go to type Go to type
Go to file member Go to file member
Go to file Go to file
Code bookmarks Code bookmarks
Navigate to decompiled source Navigate to decompiled code
View recent files View recent files/recent edits and jump to last edit
Quick Launch Go to action
Go to base Go to base symbols, derived symbols, and end implementations
Go to text
Structural search and replace
Indication of type inheritors and method overrides in the editor
Go to related and nearby files
Navigate to exposing APIs
IL Viewer
Hierarchy views for projects, project references, types, CSS styles
File structure
Solution-wide to-do explorer with configurable patterns
Stack trace explorer

Code style

Reformat code Reformat code, optionally with contextual configuration of formatting rules
Optimize namespace import directives Optimize namespace import directives, including bulk imports
Configurable code syntax style inspections Configurable code syntax style inspections
Naming style Naming style
EditorConfig support EditorConfig support with File Formatting Info window which allows to explore all .editorconfig files that affect the current file
Code cleanup in file, project, or solution (C#) Code Cleanup in any scope: selection, file, folder, project, solution (C#, VB.NET, C++, JavaScript, TypeScript, HTML, and other languages)
Remove unnecessary usings and unused private members in a file Remove code redundancies in the scope of a method, a class, a file, a project or the whole solution
File header style via EditorConfig File header style via EditorConfig or settings
Auto-detection of naming and formatting styles
Use comments to configure formatter
Organize and reorder file/type members

Unit testing

Unit test explorer Unit test explorer
Testing frameworks support (MSTest, VSTest, xUnit.net) Testing frameworks support (MSTest, VSTest, xUnit.net, NUnit, QUnit, Jasmine)
Run tests from the editor (MSTest and xUnit.net only) Run tests from the editor
View test status in the editor (MSTest and xUnit.net only) View test status in the editor
Code coverage tools Enterprise Code coverage tools dotUltimate
Live Unit Testing Enterprise Continuous testing dotUltimate
Multiple unit test sessions, which can run simultaneously and independently of one another
Audio cues for tests

Debugger

DataTips in the editor Searchable DataTips in the editor
Breakpoints window Breakpoints window with preview, context search, grouping, and export
Find breakpoints by context
Values of local variables, current line expressions, and function returns are shown in the editor

Managing settings

Synchronize settings via Microsoft ID Synchronize settings with team via VCS or any file hosting service
Settings layer system to store different settings for different solutions without conflicts
Download
Free 30-day trial