ReSharper 2016.1 Help

Code Analysis

ReSharper helps you analyze code on various levels, starting from a single statement in the editor and all the way through to the architecture of your entire solution.

Finding code issues

ReSharper provides static code analysis (also known as code inspection) by applying over 1400 code inspections in C#, VB.NET, XAML, XML, ASP.NET, ASP.NET MVC, Razor, JavaScript, TypeScript, HTML, CSS, ResX, and build script code, detecting compiler and runtime errors, suggesting corrections and improvements before you even compile.

By default, ReSharper starts analyzing a code file as soon as you open it in the editor, all the way you edit it, until it is closed. This design time inspection is performed silently by continuously applying all code inspections to your code. Not only ReSharper highlights code issues right in the editor according to their severity levels, it also adds its own marker bar to the right of the editor window, where you can see instantly the status of the file and jump to specific code issues, and provides commands for navigation between code issues.

If necessary, you can run code inspection for a specific project or the entire solution and check the list of issues found in the specified scope.

Also, you can enable the Solution-Wide Analysis that will detect all errors in your entire solution and extend the list of code inspections in the current file (e.g. it will find unused public members).

If needed, you can use code annotations to customize the way ReSharper inspects your code.

Another good thing is that you can define you own custom code inspections based on structural search and replace patterns, and specify severity level for them.

Quick-Fixes for Code Issues

Most of the discovered code issues could be corrected automaticlly with ReSharper. All you need is to press Alt+Enter when the caret is on a code issue highlighted in the editor and check the suggested quick-fixes.

Code Exploration

ReSharper also provides features that do not detect code issues automatically, but rather allow you to find potential problems yourself by deeper investigation of the code. For instance, you can study call chains and find origin and destinations of a specific value. For more information on these features, see the Code Exploration section.

Type Dependency Analysis

ReSharper allows you to visually study how types depend on each other in your solution. In the type dependency diagram, you can add any number of types from different projects or compiled assemblies and visualize different kinds of dependencies between them. For more information, see Exploring Type Dependency Diagram

Project Dependency Analysis

Some code issues may be discovered by analyzing the solution architecture. ReSharper can help you here with the project dependency analysis that allows you visually explore project dependency diagram, find and optimize unused references, and detect possible architecture problems.

Code Analysis from Command Line

If you need to integrate automatic code quality analysis into your CI, version control or any other server, you can use ReSharper Command Line Tools, which are free of charge and do not require ReSharper or Visual Studio to be running. The Command Line Tools package includes two tools:

Code Analysis in Supported Languages

Most of ReSharper's code analysis features are available in C# and Visual Basic .NET , some are available in several languages, others are language-specific. The table below lists all code analysis features and languages/technologies where they are supported.

The instructions and examples given in the topics within this section address the use of code analysis features in C#. For more information on code analysis features available for specific languages, see the corresponding topics in the ReSharper by Language section.

C# VB.NET C++ HTML ASPX Razor JavaScript TypeScript CSS XML XAML RESX Build Scripts Protobuf JSON
Finding code issues with code inspections feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available
Solution-Wide Analysis feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available
Quick-Fixes for Code Issues feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available
Importing Missing Namespaces feature_available feature_available feature_available feature_available feature_available
Fix in Scope feature_available feature_available feature_available feature_available feature_available feature_available feature_available
Custom code inspections and quick-fixes feature_available feature_available feature_available feature_available feature_available feature_available
Code Annotations feature_available feature_available feature_available feature_available
Inspect This feature_available feature_available feature_available feature_available feature_available feature_available feature_available feature_available
Call Tracking feature_available feature_available
Value Tracking feature_available
Type hierarchy feature_available feature_available feature_available
Hierarchy of includes feature_available
Type dependency diagram feature_available feature_available
View style hierarchy feature_available feature_available feature_available feature_available feature_available
Path mapping feature_available feature_available

See Also

Last modified: 19 August 2016