ReSharper Help

Quick-Fixes for Code Issues

When you see a piece of code that is highlighted as error, warning, suggestion, or hint, in most cases, ReSharper helps you repair or improve the highlighted code instantly.

In this topic:

Applying quick-fixes

Quick-fixes are visually displayed as action indicators to the left of a highlighted code issue. These indicators appear when you set the caret at the code issue. The following indicators imply quick-fixes:

  • redBulb - suggests a quick-fix for the detected code issue with the Error severity level.
  • yellowBulb - suggests a quick-fix for the detected code issue with Warning, Suggestion or Hint severity level.
  • icon_vs_bulb - suggest a Visual Studio's code correction or refactoring action.
  • icon_delete - suggests a quick-fix for redundant code that can be safely removed.
  • Coding_Assistance__Context_Actions__icon_refactor - suggests an inplace refactoring or a refactoring that can fix the detected code issue.
  • icon_generate - suggests a code generation action that can fix the detected code issue.

To view and apply quick-fixes

  1. Use the issue highlighting in the editor and the marker bar to navigate to a specific code issue.
  2. Set the caret on the highlighted issue.
  3. Press Alt+Enter or click on the action indicator to the left of the caret to open the action list.
  4. Click the desired quick-fix in the, or select it using arrow keys and then press Enter.

In most cases, a quick-fix is applied immediately. However, some quick-fixes (e.g., Change All) require user interaction to chose how exactly they transform your code. In these cases, a Hot Spot Session is deployed in the editor, where you can select one of the suggested values or provide your own values in the active input positions:

Hot spot session after applying quick-fix

To complete the hot spot session:

  • If ReSharper suggests some values for the current parameter, use Up and Down arrow keys to navigate through the list of suggested values, or just type in a desired value.
  • Press Tab or Enter to accept the value and move to the input position of the next parameter. If this is the last parameter, the hot spot session completes and the caret moves to the end position defined for the session.
  • Press Shift+Tab to move the input focus to the input position of the previous parameter.
  • Press Esc to exit the hot spot session. In this case, all session parameters will be initialized with default values.

Some quick fixes can be applied not only in the current caret position, but in a larger scope. For more information, see Fix in Scope.

Quick-fixes from visual studio

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. Therefore, for some errors you may have two similar error-fixing suggestions from Visual Studio and from ReSharper. In the illustration below, you can see two bulbs both suggesting to remove redundant using directives:

Two light bulbs for fixing the same issue

To avoid this, ReSharper provides the Do not show Visual Studio bulb... option on the Code Inspection | Settings page. This option is enabled by default, so you will not see the duplicated bulbs unless you disable it.

Although ReSharper by default suppresses Visual Studio bulbs, it does not simply disable Visual Studio quick actions. For each Visual Studio's quick action, ReSharper does the following:

  • If there is a similar ReSharper's quick-fix, the Visual Studio's quick action is not displayed
  • If there are no similar ReSharper's quick-fixes, Visual Studio's action becomes available in the ReSharper's action list. You can recognize Visual Studio's quick actions by the special icon icon_vs_bulb.

This feature is supported in the following languages/technologies:

C# VB.NET C++ HTML ASPX Razor JavaScript TypeScript CSS XML XAML RESX Build Scripts

The instructions and examples given here address the use of the feature in C#. For details specific to other languages, see corresponding topics in the ReSharper by Language section.

See Also

Last modified: 21 September 2015