PhpStorm 9.0.0 Help

Configuring Inspection Severities

In this section:

Basics

Inspection severity indicates how seriously the code issues detected by the inspection impact the project and determines how the detected issues should be highlighted in the editor. By default, each inspection has one of the following severity levels:

  • Server problem server_problem
  • Typo typo
  • Info info
  • Weak Warning weak_warning
  • Warning warning
  • Error error

You can increase or decrease the severity level of each inspection. That is, you can force PhpStorm to display some warnings as errors or weak warnings. In a similar way, what is initially considered a weak warning can be displayed as a warning or error, or just as info.

You can also configure the color and font style used to highlight each severity level. Besides, you can create custom severity levels and set them for specific inspections.

If necessary, you can set different severity levels for the same inspection in different scopes.

All modifications to inspections mentioned above are saved in the inspection profile currently selected in the inspection settings and apply when this profile is used.

Changing severity of an inspection

  1. In the inspection settings, select the desired profile. The inspections associated with the profile are displayed in the tree view.
  2. Select the desired inspection. If this inspection is disabled, select the check box next to it.
  3. Select the desired severity from the context menu of the inspection or from the Severity selector on the right:
    severity_selector

    Note that inspections, whose state is changed relative to the default values, and all their grouping nodes are highlighted with blue.

  4. Apply the changes. The modified inspection will now have the new severity level when this profile is used.

In the PHP context, the Undefined field and Undefined method inspections may erroneously report severe problems when actually no problems take place. This happens when you attempt to access a property or to assign a value to a property that is not explicitly defined while the referenced class contains the _get() or _set() magic methods. No error should be reported because these methods are invoked every time an undefined property is referenced, however, PhpStorm still treats them as errors or warnings, depending on the severity you have specified for the inspection in general.

To suppress reporting Undefined method errors in such cases, re-configure the inspection severity. To do that, open the Inspections page of the Settings dialog box, click the inspection name in the list and select the Downgrade severity if __magic methods are present in class check box in the Options area. After that undefined properties in such cases will be indicated one step lower than specified for inspections in general, by default, Info instead of Warning.

To suppress irrelevant reporting of Undefined field errors, clear the Notify about access to a field via magic method and Notify about PHP dynamic field declaration check boxes. When the check boxes are selected, PhpStorm reports errors even if the class contains the __get() and __set() magic methods.

The Undefined variable inspection can be configured through the check boxes on the Inspections page of the Settings dialog:
  • Enable inspection in global space: select this check box to run the inspection against variables outside functions/methods, classes, and namespaces, that is, in the global space.
    ps_undefined_var_global_space_on.png
  • Report that variable might have not been defined: select this check box to have a warning displayed even if the definition of a variable is not definitely missing. Such situation may take place when a variable is used in several paths and some of them may never be reached, for example, in if() statements:
    ps_undefined_var_if_statement.png
  • Ignore 'include' and 'require' statements Suppose the inspection scope contains an include or require statement. If this check box is cleared, PhpStorm treats such variable as defined in the classes referenced through these statements and no error is reported. If this check box is selected, an Undefined variable error is reported.

Changing the highlighting style for a specific severity level

  1. Do one of the following:
    • In the Settings dialog, select Editor | Colors & Fonts -> General, and then select the style corresponding to the desired severity level.
    • In the inspection settings, select the desired inspection and choose Edit severities from the Severity selector.
      OptionsArea

      Next, in the Severities Editor dialog box that opens, select the desired severity level and click Edit Settings | Colors & Fonts.

    Either way you will see the styles associated with this severity in the Colors and Fonts settings page.

  2. Configure the color and font styles as necessary and apply changes. The detected issues with the corresponding severity will now be highlighted in the editor with the modified style when the current profile is used.

Defining a Custom Severity Level

  1. In the inspection settings, select the desired inspection and choose Edit severities from the Severity selector.
    OptionsArea
    .
  2. In the Severities Editor dialog box that opens, click add.png:
    severity_editor
  3. Type the name for the new severity in the New Highlight Severity dialog box.
    severity_highlight

    The custom severity is added to the list of severities.

  4. Specify color and font settings for the new severity using the controls to the right of the list of severities.
  5. Use the Up arrowUp.png and Down arrowDown.png buttons to change the priority of the new severity.
  6. Apply the changes. The new severity level will now be available for all inspections within the current profile. You can assign it to specific inspections and get the corresponding code issues highlighted with the specified style in the editor.

    If necessary, you can remove the custom severity level later by selecting it in the Severities Editor dialog box and clicking delete.png.

    You cannot change priorities of the pre-defined severity levels, or remove them.

See Also

Last modified: 7 August 2015