Detect Code Issues in Design Time
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. All detected code issues are highlighted in the editor according to their severity levels. The map of the issues is also displayed on the marker bar in the right part of the editor window, where you can see instantly the status of the file and click the marks to navigate to specific code issues.
Design-time inspection features
To illustrate the design-time code inspection performed by ReSharper, consider the following code excerpt displayed in the editor:
In this example, we can see the following features of ReSharper code inspection:
A medium-priority code issue (in this case, a warning about a symbol name that does not match the naming style) is highlighted with a blue curly underline.
A low-priority code issue (in this case, a suggestion related to an unused public member) is greyed out.
A Status indicator helps you to quickly see whether the current file has any errors or warnings.
Code analysis hints make missing function returns, missing breaks in switch statements, and disposed resources easier to notice.
A fix popup that appears for non-imported types. Simply press Alt+Enter or click this popup to have ReSharper add the missing directive for all types in the file. For more information, see Import Missing Namespaces.
A marker corresponding to a warning is displayed on the marker bar.
A marker corresponding to an error is displayed on the marker bar.
An action indicator that appears to the left of the caret position if ReSharper has anything to suggest there.
High-priority code issues (in this case, errors related to an unresolved symbol and an incorrect return type) are highlighted with red text and a red curly underline.
A marker corresponding to a suggestion is displayed on the marker bar.
The action list, which can be opened by pressing Alt+Enter or clicking the action indicator (7), contains a list of quick-fixes for the issue at the caret.
If solution-wide analysis is enabled, ReSharper allows you to see even more code issues. In this example, it detects the unused public member and notifies you of errors in other files in your solution. Click the solution-wide analysis icon to explore the detected issues.
A short description of the issue at the caret appears in the status bar. To view descriptions of code issues, hover the mouse over the highlighted code or over the issue markers on the marker bar.
Toggle design-time inspection
By default, design-time code inspection is enabled in all supported languages. However, you can disable it everywhere or turn it off for specific files if needed. For more information on configuring code inspection, see Configure Code Inspection Settings.
Select Alt+R O, then choose on the left.
from the main menu or pressUse the Enable code analysis checkbox to toggle the design-time code inspection.
Optionally, you can enable or disable design-time inspection features on this page:
Color identifiers This option lets you enable or disable ReSharper syntax highlighting scheme.
If it is selected, language identifiers are highlighted with colors as defined in Visual Studio options: .
The list of syntax identifiers provided by ReSharper is available in the Display items list, each name starting with the ReSharper prefix.Note that by disabling this option you also disable symbol information tooltips that appear on mouse over.
Highlight color usages Enables highlighting of color definitions in code. For more information, see Color Assistance. Highlight special characters in string literals Enables highlighting of correct and incorrect escape sequences in non-verbatim strings. For example: For more information, see Regular Expressions Assistance. Highlight context exits This option, enabled by default, tells ReSharper to highlight all places where the control flow can exit the current context. For example, for a method, it will highlight the return type of the method, all return
,throw
keywords, and so on when you set the caret to one of these identifiers For a loop, it will additionally highlight the loop keyword as well as all thebreak
statements inside this loop.
Note that if a method is not entirely visible in the editor, you can invoke the Navigate To Function Exits command on the method name to trigger another kind of highlighting, which will not disappear when your caret leaves the method name.If necessary, you can select the Enable solution-wide analysis checkbox to enable the Solution-Wide Analysis.
Click Save in the Options dialog to apply the modifications and let ReSharper choose where to save them, or save the modifications to a specific settings layer using the Save To list. For more information, see Manage and Share ReSharper Settings.
Navigate code issues
If the design-time code inspection is enabled, you can easily navigate between all issues (except those with the hint severity level) detected in the current file.
Navigate to the next/previous code issue in the current file
Press F12 to go to the next code issue, or Shift+F12 to go to the previous code issue.
In the main menu, choose
or ..Use the marker bar on the right side of the editor window: clicking on markers brings the caret to the corresponding issues; clicking on the status indicator on top of the marker bar brings the caret to the next issue in the file.
Right-click the status indicator and choose Go to Next/Previous Error/Warning/Suggestion — these commands will help you navigate between code issues of the highest severity level. So if there are errors, they only navigate between errors, as soon as all errors are fixed they navigate between warnings, and so on.
Navigate to the next/previous error
Press Alt+F12 to go to the next error, or Shift+Alt+F12 to go to the previous error.
In the main menu, choose
or .If the Solution-Wide Analysis is enabled and there are some errors, the number of errors is displayed in the right corner of the status bar. You can click this number to go to the next error in the solution.
Inspection options menu
Besides suggested fixes, for each configurable code inspection as well as for custom inspections, ReSharper shows the Inspection [name of inspection] sub-menu in the actions list, with the following items:
For the most controversial issues, there is the Why is ReSharper suggesting this? item that opens a Code Inspection Index page with detailed description of the corresponding inspection.
Find similar issues
You can not only fix a highlighted issue with a quick-fix, but also find and investigate all similar issues (all issues detected with the same code inspection) in the whole solution or smaller scope.
Find similar issues
Set the caret at a highlighted issue in the editor.
Press Alt+Enter or click the action indicator to the left of the caret to open the action list.
To find similar issues in the current file, choose Inspection [name of inspection] | Find similar issues in [filename] file.
To find similar issues in the current project or solution, expand the submenu and choose the desired scope:
If necessary, you can search for similar issues in any project or solution folder within your solution. To do so, choose Find similar issues in custom scope in the submenu.
In the dialog that opens, type the name of the desired project or solution folder, and then click OK.All found issues will be displayed in the Inspection Results window.
Integration with Visual Studio code inspection controls
Starting from version 2015, Visual Studio comes with its own code analysis engine (Roslyn) and provides its own light bulbs feature to perform quick actions including refactoring and fixing errors.
Visual Studio's quick actions often perform the same fixes as ReSharper's quick-fixes, context action, or refactorings. Therefore, for some errors you may have two similar suggestions from Visual Studio and from ReSharper. In the illustration below, you can see two bulbs both suggesting to remove redundant using
directives:
To avoid this, ReSharper provides the Hide Visual Studio light bulb option on the page of ReSharper options. This option is enabled by default, so you will not see the duplicated bulbs unless you disable it.
If Visual Studio Light Bulb is suppressed, Visual Studio actions can be integrated into ReSharper's action list by selecting the Merge Visual Studio light bulb actions into ReSharper action indicator checkbox. If it is selected, ReSharper does the following for each Visual Studio's quick action:
If there is a similar ReSharper's quick-fix or context action, the Visual Studio's quick action is not displayed.
If there are no similar ReSharper's action, the Visual Studio's action becomes available in the ReSharper's action list. You can recognize Visual Studio's quick actions by the special icon .
If necessary, you can also disable Visual Studio's error highlighting in the editor, so that only code issues found by ReSharper are highlighted. To do so, select Hide Visual Studio squiggles on the page of ReSharper options.