ReSharper 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: InspectCode, which executes ReSharper's code inspection and dupFinder., which detects duplicated code.

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.

Feature C# VB.NET C++ HTML ASPX Razor JavaScript TypeScript CSS XML XAML RESX Build Scripts
Finding code issues with code inspectionsfeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_available
Solution-Wide Analysisfeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_available
Quick-Fixes for Code Issuesfeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_available
Importing Missing Namespacesfeature_availablefeature_availablefeature_availablefeature_availablefeature_available
Fix in Scopefeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_available
Custom code inspections and quick-fixesfeature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_available
Code Annotationsfeature_availablefeature_availablefeature_availablefeature_available
Call Trackingfeature_availablefeature_available
Value Trackingfeature_available
Explore type hierarchyfeature_availablefeature_availablefeature_available
Explore type dependency diagramfeature_availablefeature_available
View style hierarchy feature_availablefeature_availablefeature_availablefeature_available
Path mapping feature_availablefeature_available

See Also

Last modified: 30 June 2015